日期:2014-05-20 浏览次数:20795 次
public class Monkey {
//all代表围成圈的个数,interval代表报数间隔
public static void last(int all, int interval) {
//初始化
boolean[] flag = new boolean[all];
for (int i = 0; i< all; i++)
flag[i] = true;
int i = 0, j=0; //i代表所有人数的位置,j计数,代表1到interval
int end = all; //记录剩余的人数,初始化为all
//只要剩余的大于 ,就一直循环
while (end > 1) {
if (flag[i]) { //从没有退出圈子的开始报数
j++;
}
if (j == interval) { //如果计数等于interval,就退出圈子
j = 0; //j重新计数
flag[i] = false; //退出圈子,标记
end--; //剩余个数减1
}
i++;
if (i == all) i=0; //一遍循环结束后,i归0,从头开始
}
for (int k=0; k< all; k++) {
if (flag[k])
System.out.println("大王的位置为: " + (k+1));
}
}
public static void main(String[] args) {
last(15,7);
}
}