chelizi 发表于 2021-3-11 19:38:30

排队报数问题求助

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;这句该怎么理解有人能回答一下么

chelizi 发表于 2021-3-16 18:10:54

chelizi 发表于 2021-3-16 18:11:25

没有人么
页: [1]
查看完整版本: 排队报数问题求助