題目 1047: [程式設計入門]報數問題
時間限制: 1Sec 記憶體限制: 128MB 送出: 5915 解決: 3382
題目描述
有n人圍成一圈,順序排号。從第1個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來的第幾号的那位。
輸入
初始人數n
輸出
最後一人的初始編号
樣例輸入
3
樣例輸出
2
#include<stdio.h>
int main()
{
int n,a[100],ko=0,cns=0;
int i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
a[i]=i+1;
}
i=0;
while(ko!=(n-1))
{
if(a[i])
cns++;
if(cns==3)
{
a[i]=0;
cns=0;
ko++;
}
i++;
if(i==n)
i=0;
}
for(i=0;i<n;i++)
{
if(a[i])
printf("%d",i+1);
}
return 0;
}