经典数学问题之约瑟夫环
有500个人围城一个圈,依次报数,每数到3的倍数的人离开圈,数完一圈后继续从1开始数,直到圈中剩下最后一个人,求剩下的人原来在圈中的位置
实现代码如下:
public class yuesefu {
public static void main(String[] args) {
boolean[]a=new boolean[500];
for (int i = 0; i <a.length ; i++) {
a[i]=true;
}
int count=0;
int len =a.length;
int index=0;
while (len>1){
if(a[index]){
count++;
if (count==3){
a[index]=false;
len--;
count=0;
}
}
index++;
if(index==a.length){
index=0;
}
}
for (int i = 0; i <a.length ; i++) {
if(a[i]){
System.out.println("最后剩余的人原来位置:"+(i+1));
break;
}
}
}
}