public class Count7Quit
{
public static void main(String[] args)
{
boolean[] b=new boolean[100];//表示有100个人,true表示剩余的人,false表示退出的人
for(int i=0;i<b.length;i++){
b[i]=true;
}
int leftCount=b.length;//剩余的人数,一开始没人退出当然为100啦
int index=0;//用来看数到哪个位置
int countNum=0;//用来数人,都是数1,2,3,4,5,6,7
while(leftCount>1){//循环到退出人数剩下一个人
if(b[index]==true){
countNum++;
if(countNum==7){//如果数到第7个人
countNum=0;
b[index]=false;
leftCount--;//那剩余的人数就减1
}
}
index++;
if(index==b.length){//如果数到尽头了,又重新开始数(注意:这个不影响countNum的)
index=0;
}
}
for(int i=0;i<b.length;i++){
if(b[i]==true)
System.out.println("最后剩下的人是 :"+(i+1));//因为数组下标是从0开始,所以i要加1
}
}
}
刚学来的程序!~
经典算法啊!~
符合楼主要求了,结果为50,运行下就出来了!~