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]);
			}
		}
	}

}

輸出結果如下:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章