1852 - 课后习题10.5

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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

题目输入

初始人数n

题目输出

最后一人的初始编号

输入/输出样例

输入格式

3

输出格式

2

C语言解答

#include<stdio.h>
#define M 3
int main()
{

	int n,a[1000],*p,*pp,i,tuichu=0,num=0;
	p=a,pp=a;
	scanf("%d",&n);
	for(i=0;i<n;i++,p++)
		*p=1;
	p=pp;
	while(tuichu!=n-1)
	{
		if(*p==1)
			num++;
		if(num==M)
		{
			*p=0,num=0,	tuichu++;
		}
		p++;
		if(p==(pp+n)) p=pp;

	}
    p=pp;
	for(i=0;i<n;i++,p++)
	{
		if(*p==1)
		{	printf("%d",p-pp+1);break;}

	}

}