哥斯拉不说话 发表于 2015-5-17 18:38:50

C语言围圈报数问题

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
这个题竟然还能这样做, 完全看不懂啊,这个程序到底是什么意思呢#include <stdio.h>

int main()
{
    int i, n, s=0;
   
    scanf("%d", &n);
   
    for (i=2; i<=n; i++)
    {
      s = (s+3)%i;
    }
   
    printf("%d\n", s+1);
   
    return 0;
}

哥斯拉不说话 发表于 2015-5-18 13:05:22

看了一天还是没明白

ANDES 发表于 2015-5-19 18:40:27

哥斯拉不说话 发表于 2015-5-18 13:05
看了一天还是没明白

没看懂,这程序始终只会打印出1.

哥斯拉不说话 发表于 2015-5-19 20:16:59

ANDES 发表于 2015-5-19 18:40
没看懂,这程序始终只会打印出1.

不是啊,这程序很对啊,比如你输入3,表示有3个人,它就会输出2,表示最后剩下的是原来的第2个人。

ANDES 发表于 2015-5-20 09:36:57

哥斯拉不说话 发表于 2015-5-19 20:16
不是啊,这程序很对啊,比如你输入3,表示有3个人,它就会输出2,表示最后剩下的是原来的第2个人。

好吧,我又看快看错了。
页: [1]
查看完整版本: C语言围圈报数问题