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

【题解】幸运儿

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

【题目描述】

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块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个...

    【题解】连通块

    【题目描述】一个n × m的方格图,一些格子被涂成了黑色,在方格图中被标为1,白色格子标为0。问有多少个四连通的黑色格子连通块。四连通的黑色格子连通块指的是一片由黑色格子组成的区域,其中的每个黑色格子...

    线段

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

    【题解】最大平方因子

    【题目描述】给定一个整数 n,请找出 n 的最大平方因子。所谓平方因子,就是一个 n 的因子,且是一个完全平方数。最大平方因子就是 n&nb...

    【题解】最少操作使数组递增

    【题目描述】给你一个整数数组 nums (下标从 0 开始)。每一次操作中,你可以选择数组中一个元素,并将它增加 1 。比方说,如果 nums = [...

    【题解】电池的寿命

    【题目描述】小S新买了一个掌上游戏机,这个游戏机由两节5号电池供电。为了保证能够长时间玩游戏,他买了很多5号电池,这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同,有的能使用5个小时,有的可...