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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了300个人围成一个圈,从某个指定的人开始报数(1--3),凡是数到3的人退出圈子相关的知识,希望对你有一定的参考价值。

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的人退出圈子的主要内容,如果未能解决你的问题,请参考以下文章

JAVA围圈报数 问题

c语言,有n个人围成一个圈,顺序排号,从第一个开始报数(1到3),凡报到3的退出圈子问最后留下的人

Java迭代器问题 有100个人围成一个圈从1开始报数,报到14的这个人就要退出,然后其他人重新开始,从1报数,到14退出问:最后剩下的是100人中的第几个人 用listIterator迭代元素,并对

有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

1334:例2-3围圈报数

C++ 结构有n个人围成一圈,顺序排号。从第一个开始报数(从1到3报数),凡报到3的人退出圈子,(用结构)