顺序排号

顺序排号

时间: 1ms        内存:128M

描述:

有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

输入:

初始人数n

输出:

最后一人的初始编号

示例输入:

3

示例输出:

2

提示:

参考答案(内存最优[748]):

#include <stdio.h>

const int M = 3;

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

参考答案(时间最优[0]):


#include <stdio.h> 

const int M = 3; 

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

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注