废话不多说,直接上代码
//找编号
public static void find(int n,int m){
int[] array = new int[n];
int i = 0;
int count = 0;
int flag = 0;
int temp = 0;
temp = count = n;
for(i = 0;i < n;i++){
array[i] = 1;//所有人都在圈内,为1
}
for(i = 1;;i++){
if(i == n + 1){
i = 1;
}
if(array[i-1] != 0){
flag++;
}else {
continue;
}
if(flag % m == 0){
array[i-1] = 0;//已经出圈
count--;
}
if(count == 1){
break;
}
}
for(i = 0;i < temp;i++){
if(array[i] != 0){
System.out.println(i+1);
}
}
}
方法不重要,主要是思想。如有错误,请大家指点。