没有登录
中国开发网: 论坛: 超级垃圾站: 贴子 231572
nostalgic: test
public class Josephus {

public static void main(String args[])

{

int num = 10; //孩子总数

int interval = 5; //每次数interval个孩子,就让该孩子离开

int []child =new int[num+1]; //孩子树组

int []flag =new int[num+1]; //每个孩子是否在圈子的标志,1:在 0:不在

for(int i=1;i<=num;i++){

child[i]=i;

flag[i]=1; //开始每个孩子都在圈内

System.out.println("第"+i+"个孩子的名字:"+child[i]);

}

int n = 0;

int i = 3; //从第几个孩子开始

int j = 1; //从1开始记数

boolean noEnd = true; //是否结束的标志

while(noEnd)

{

while(j<interval){

i =(i+1>num?1:i+1);

j+=flag[i];

}

flag[i]=0;

n++;

if(n==num){

noEnd = false;

System.out.println("第"+i+"个孩子最后胜利");

}

else{

System.out.println("第"+i+"个孩子离开");

j=0; //j达到interval时,从新开始记数

}

}

}

}

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录