您的位置:首页 > 其它

网上找的约瑟夫环~~自己写的时候有个地方没想出来~~哎~~~~就出来了上面的那个笨方法~~~~

2008-11-22 11:39 537 查看
package test;

public class josephus {
public static void main(String args[]) {

int i, j, n=10, m=3;
int a[] = new int
;
for (i = 0; i < n; i++) {
a[i] = i + 1;
}
int k = 1; //标识处理第k个离开的人
i = -1; //数组下标,下一个为0,即第一个人
while (true) //k等于n表示只剩下一个人了
{
for (j = 0; j < m;) //在圈中数m个人
{
i = (i + 1) % n;
if (a[i] > 0) {
j++; //a[i] >0表示第i个人还没有离开
}
}
if (k == n) {
break;
}
a[i] = -1; //表示该人离开
k++;
}
System.out.println("No." + a[i] + " is the winner!");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐