Skip to content

Latest commit

 

History

History
57 lines (50 loc) · 755 Bytes

69.md

File metadata and controls

57 lines (50 loc) · 755 Bytes

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

#include<stdio.h>

int main()
{
	int n;
	scanf("%d", &n);

	int a[100];
	//编号
	for (int i = 0; i < n; ++i)
	{
		a[i] = i + 1;
	}

	int cnt = n;//未淘汰人数
	int i = 0;//每轮第几个
	int num = 0;//报数
	while (cnt > 1)
	{
		if (a[i] != 0)
		{
			num++;
			if (num == 3)
			{
				a[i] = 0;
				num = 0;
				cnt--;
			}
		}

		i++;

		//从头报数
		if (i == n)
		{
			i = 0;
		}
	}

	//打印结果
	for (int i = 0; i < n; ++i)
	{
		if (a[i] != 0)
		{
			printf("最后留下的是:%d\n", a[i]);
		}
	}
	return 0;
}
8
最后留下的是:7