问题标题: 酷町堂:4000 报数游戏2 ,急急急,我之前不知道明天上课

0
0
已解决
林芳
林芳
高级守护
高级守护

题目描述 Description

有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。

输入描述 Input Description

输入两个数据n和m,其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)

输出描述 Output Description

输出每个人的退出顺序编号(第几个人的退出次序是几)

样例输入 Sample Input

12 5

样例输出 Sample Output

12 10 3 5 1 11 8 7 4 2 9 6

数据范围及提示 Data Size & Hint

2<=n<=50
0<m<n


0
已采纳
陈振轩
陈振轩
高级光能
高级光能

把课堂题改一改就好了

用数组存当前的退出顺序序号,也就是++k,k的初值为0

 

0
汪恺恒
汪恺恒
中级启示者
中级启示者
    s=n;
    while(1){
        如果没有人 break;
        if(!a[pos]){
            cnt++;
            if(cnt==m){
                a[pos]=true;
                b[pos]=++x;
                cnt=0;
                s--;
            }
        }
        pos++;
        if(pos==n+1){
            pos=1;
        }
    }

最后输出b数组就行了

0
0
我要回答