当前位置:首页 > 题解目录 > 正文内容

【题解】幸运儿

亿万年的星光1年前 (2025-04-04)题解目录876

【题目描述】

n 个人围成一圈, 并依次编号1~n,从编号为1 的人开始,按顺时针方向每隔一人选出一个,当一圈结束之后,剩下的人重新围成一圈,再次从编号1的人开始,如此循环直到剩下两人,这剩下的两人就是幸运儿。如果你想成为最后两个幸运儿,请问开始时应该站在什么位置?(设3<=n<=50)

【输入描述】

有多个测试序列。每行是开始时的人数n

【输出描述】

第1 行是选出顺序,第2 行是两名幸运儿的开始位置(按升序排列),位置编号之间用一个空格分开。

【样例输入】

12
20

【样例输出】

2 4 6 8 10 12 3 7 11 5
1 9
2 4 6 8 10 12 14 16 18 20 3 7 11 15 19 5 13 9
1 17


【参考答案】

#include<iostream>
#include<queue>
using namespace std;
int main(){
    int n;
    while(cin>>n){
        queue<int> q;
        for(int i=1;i<=n;i++){
            q.push(i);
        }
        int k=1;
        while(!q.empty()){
            if(q.size()==2){
                break;
            }
            if(q.front()==1){
                k=1;
            }
            if(k==2){
                cout<<q.front()<<" ";
                q.pop();
                k=1;
            }else{
                q.push(q.front());
                q.pop();
                k++;
            }
        }
        cout<<endl;
        int k1[2];
        int i=0;
        while(!q.empty()){
            k1[i++]=q.front();
            q.pop();
        }
        if(k1[0]>k1[1]){
            cout<<k1[1]<<" "<<k1[0]<<endl;
        }else{
            cout<<k1[0]<<" "<<k1[1]<<endl;
        }
    }
    return 0;
}


    扫描二维码推送至手机访问。

    版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

    分享给朋友:

    相关文章

    线段

    题目描述在一个数轴上有n条线段,现选取其中k条线段使得这k条线段两两没有重合部分,问最大的k为多少?输入格式第一行为一个正整数n,下面n行每行2个数字ai,bi,描述每条线段。输出格式输出文件仅包括1...

    【题解】区间数位个数

    2.区间数位个数(digit.cpp)【描述】给定整数n和整数k,求出1~n中所有数的每一位数字中,出现数字k的次数。【输入】第一行是两个个整数n和k【输出】一个整数表示答案。【样例输入输出】ligh...

    【题解】加密(2019青岛市程序设计竞赛)

    【问题描述】文件加密最简单的方法是把文件的原文中的每个字母用另一个字母来代替。假设原文中只包括26个英文字母(有大写和小写),没有其他符号,且长度不超过100,加密规则如下:原文abcdefghijk...

    进制转换(1)

    【题目描述】毛毛是个健忘的孩子,编程课上老师刚讲过进制转换的问题,她又忘了。请你帮他编写一个程序,完成一个浮点数与二进制之间的相互转换【输入描述】两个数字,第一个数字表示要转换的数字,浮点型。第二个是...

    【题解目录】友好城市

    【题解目录】友好城市

    【题目描述】Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。每对友好城市都向政府申请在河...

    【题解】循环比赛日程表

    【题目描述】设有N个选手进行循环比赛,其中 N=2^M ,要求每名选手要与其他的N-1名选手都赛一次,每名选手每天比赛一次,循环赛共进行N-1天,要求每天没有选手轮空。【输入描述】输入M【输出描述】一...