关于出圈
昨天晚上考试,有一题出圈问题很不能理解。。。int i,n,m,t,a[1024],c=1;
scanf("%d%d",&n,&m);
for(i=0;i<n-1;i++)
a[i]=i+1;
a[i]=0;
while(n--)
{
while(1)
{
if(c%m==0)
{
t=a[i],a[i]=a[a[i]],c=1,i=t;
break;
}
else
i=a[i],c++;
}
}printf("%d\n",a[i]+1);
这是答案代码,拿着笔写了半天,还是不能明白,为什么感觉一次循环就可以求出值了?求详解。谢谢