Java练习:10人循环报数(从1到3报数),凡报到3的人退出,最后留下谁

//{1,2,3,4,5,6,7,8,9,0}第一轮的淘汰为:{0,0,1,0,0,1,0,0,1,0}
import java.util.Arrays;
public class Work105 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr={1,2,3,4,5,6,7,8,9,10};
		int[] arrB=new int[arr.length];//淘汰标记组
		int cont=0,//全局循环计数,到3的倍数就淘汰人
				flg=0;//已淘汰人数
		
		System.out.println("淘汰过程如下:");
		while(true){
			for (int i = 0; i < arr.length; i++) {
				if(arrB[i]==1){//说明这个人已经淘汰,此人跳过
					continue;
				}else{
					cont+=1;//计数器+1
					if(cont%3==0){//如果这个人/3=0
						arrB[i]=1;//这个人淘汰
					}
				}
			}
			
			//输出淘汰情况
			System.out.println(Arrays.toString(arrB));
			
			//统计已淘汰人数淘汰
			for (int i = 0; i < arrB.length; i++) {
				if(arrB[i]==1){
					flg++;
				}
			}
			if(flg==arr.length-1){//若只剩一人,则结束循环
				break;
			}else{//若剩余多余一人,则继续循环
				flg=0;
			}
		}
		System.out.println("原来为:\n"+Arrays.toString(arr));
		for (int i = 0; i < arrB.length; i++) {
			if(arrB[i]==0){
				System.out.println("经过淘汰,最后剩下的是:"+arr[i]);
			}
		}
	}

}

输出结果如下:
Java练习:10人循环报数(从1到3报数),凡报到3的人退出,最后留下谁_第1张图片

你可能感兴趣的:(Java)