码迷,mamicode.com
首页 > 其他好文 > 详细

300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子

时间:2017-04-16 22:31:37      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:i+1   tin   sys   system   out   public   --   oid   需要   

public static void main(String[] args) {
		/*
		 *  300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子,
		 *  问最后剩下的一个是从指定位置开始计数的第几个人?
		 */
		
		int num[]=new int[300];
		int i=0;     // 数组的下标计数器 0---299
		int count=0; // 退出的人数计数器 0---299
		int n=1;     // 数数的计数器         1---3
		
		while(count<299){
			// 数组的值如果是1,代表该位置的人不存在
			// 不存在的位置则直接跳过
			if(num[i]==1){
				i++;
				if(i>299) i=0;
				continue;
			}
			// 数数计数器值为3,代表该位置上的人需要退出
			if(n==3){
				num[i]=1;  // 代表退出
				count++;   // 退出的人数计数器累加
//				System.out.println("退出序号:"+(i+1)+",计数器:"+count);
			}
			
			n++;
			if(n>3) n=1;
			i++;
			if(i>299) i=0;
		}
//		System.out.println(count);
		for(i=0; i<num.length; i++){
			if(num[i]==0){
				System.out.println("最后剩下的序号为:"+(i+1));
			}
		}
	}

  

300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子

标签:i+1   tin   sys   system   out   public   --   oid   需要   

原文地址:http://www.cnblogs.com/jiuer/p/6720193.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!