游客 Signup | Login
中文 | En

1852 - 课后习题10.5

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

Input

初始人数n

Output

最后一人的初始编号

Examples

Input

3

Output

2

Solution 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;}

	}

}

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题