例2-3围圈报数

Posted Ed_Sheeran

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了例2-3围圈报数相关的知识,希望对你有一定的参考价值。

【例2-3】围圈报数

链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1334
时间限制: 1000 ms         内存限制: 65536 KB
 

【题目描述】

有n个人依次围成一圈,从第1个人开始报数,数到第m个人出列,然后从出列的下一个人开始报数,数到第m个人又出列,…,如此反复到所有的人全部出列为止。设n个人的编号分别为1,2,…,n,打印出列的顺序。

【输入】

n和m。

【输出】

出列的顺序。

【输入样例】

4 17

【输出样例】

1 3 4 2
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
int flag;
int a[1000005];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++)a[i]=i+1;
    a[n]=1;
    int j=0,t=0;
    while((++j)<=n)
    {
        int k=0;
        while((++k)<m)t=a[t];
        if(flag)printf(" %d",a[t]);
        else {flag=1;printf("%d",a[t]);
        }
        a[t]=a[a[t]]; 
    }
    return 0;
}

 

以上是关于例2-3围圈报数的主要内容,如果未能解决你的问题,请参考以下文章

JAVA围圈报数 问题

使用循环链表实现约瑟夫环(围圈报数问题)

围圈报数

python围圈报数 青少年编程电子学会python编程等级考试三级真题解析2021年6月

蓝桥杯省赛真题14python围圈报数 青少年组蓝桥杯python编程省赛真题解析

蓝桥杯省赛真题14python围圈报数 青少年组蓝桥杯python编程省赛真题解析