ex5_3.cpp

来自「谭浩强 c程序学习时的程序 希望对初学者有借鉴意义」· C++ 代码 · 共 27 行

CPP
27
字号
//17个人围成圈,编号为1~17,从第1号开始报数,报到3的倍数的人离开
//一直数下去,直到最后只剩下1人。求此人的编号。
#include <stdio.h>
void main()
{
	const int m=17;
	int i,j,num;
	int a[m]={0};
	
	for (i=0;i<m;i++)    //给每个人编号1~m
		a[i]=i+1;

	i=-1;
	for (int k=1;k<=m;k++)
	{
		j=1;
		while (j<=3)
		{
			i=(++i)%m;
			if (a[i])		//如果此人已经离开,则跳过.
				j++;
		}
		num=a[i];
		a[i]=0;			
	}
	printf("最后一个离开的人编号为%d\n",num);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?