Description
有N个小孩围成一圈,给他们从1开始依次编号,现指定从第W个开始报数,报到第S个时,该小孩出列,然后从下一个小孩开始报数,仍是报到S个出列,如此重复下去,直到所有的小孩都出列(总人数不足S个时将循环报数),求小孩出列的顺序。
Input
每组测试数据有3个正整数,小孩的人数N(N<=64),W,S (W < N)。
Output
输出小孩出列的顺序。
Sample Input
5 2 3
Sample Output
4 2 1 3 5
#include<stdio.h>
int main()
{
int n,w,s,k;
int count;//出圈人数;
int i;//第i个人报数;
int num;//报数器;
int a[66];
while(scanf("%d%d%d",&n,&w,&s)!=EOF) //12345
{
count=0;i=w;num=0;//i=4 num=3
for(k=1;k<=n;k++)
{
a[k]=0;
}
while(count<n)
{
if(a[i]==0)
{
num++;
if(num<s)
{
;
}
else
{
printf("%d\n",i);
num=0;
a[i]=1;
count++;
}
}
i++;
if(i>n)
{
i=i%n;
}
}
}
return 0;
}