排队报数问题求助
Description:有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
Input:
包含多组数据。
每行表示初始人数n。
最后一组是0,不用处理。
Output:
对每个测试数据输出最后一人的初始编号
Sample Input:
3
7
0
Sample Output:
2
4
解答代码:
# include<stdio.h>
int main(void)
{
int n ;
while(scanf("%d",&n)!=EOF && n!=0)
{
int i , m=0;
for(i = 1 ; i <= n ; i++)
m = (m+3)%i;
printf("%d\n",m+1);
}
return 0;
}
其中m = (m+3)%i;这句该怎么理解有人能回答一下么 顶 没有人么
页:
[1]