Description
nn个人围成一个圈 1 2 3 1 2 3 报数,报3的出列,问谁是最后一个留下的人?
Input
nn
Output
最后剩下的人
Samples
Input 复制
3
Output
2
#include<stdio.h>
#include<string.h>
int main()
{
int n,i;
int flag1=0,flag2=0;
scanf("%d",&n);
int a[n];
for(i=0;i<=n-1;i++)
{
a[i]=1;
}
for(i=0;i<=n-1;i++)
{
if(a[i])
{
flag1++;
if(flag1/3>=1&&flag1%3==0)
{
a[i]=0;
flag2++;
}
if(flag2==n-1)
{
break;
}
}
if(i==n-1)
{
i=-1;
}
}
for(i=0;i<=n-1;i++)
{
if(a[i]==1)
{
printf("%d\n",i+1);
break;
}
}
return 0;
}