zoukankan      html  css  js  c++  java
  • 【例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;
    }
  • 相关阅读:
    读文章论文
    安装并使用SourceMonitor检测代码复杂度
    FindBug安装与使用
    PMD安装与使用
    Checkstyle安装与使用
    文章主题
    GitHub账号
    PICT的安装与使用
    Junit的安装与使用
    SourceMonitor的安装及使用
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/8017875.html
Copyright © 2011-2022 走看看