这是一道学校acm基地招新的题
我之前也写过一道有几分相似的题,所以比赛的时候写的快一点,但是也没有完全理解,容易自己都搞混,有朋友问我的解题思路时,我也讲错,这大可能是自身能力不够,这提醒我还需要继续提升自己的实力。
原题:
废话少说,直接上代码
int main()
{
int n,i,a[100000]={0},count=0,taotai=0;
scanf("%d",&n);
for(i=1;i<=n;i++)//编号
{
a[i]=i;
}
for(i=1;i<=n;i++)
{
if(taotai==n-1)//判断最后一个人
break;
if(a[i]!=0&&count==6)//判断第七个人
{
count=0;
a[i]=0;
taotai++;
}
if(a[i]!=0)//判断如果没有淘汰人就继续
{
count++;
}
if(i>=n)//判断是不是走过了一圈
i=0;
}
for(i=1;i<=n;i++)
{
if(a[i]!=0)//判断有没有被淘汰
printf("%d",a[i]);
}
return 0;
}