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

}

输出结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值