社区讨论

萌新刚学STL,求调qwq(玄关)

灌水区参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@m1lsv9xx
此快照首次捕获于
2024/09/28 14:57
去年
此快照最后确认于
2025/11/04 18:36
4 个月前
查看原帖
题目:
小John是一个肯动脑筋的孩子。
只见他手持一叠卡片,他告诉大家这里有n张卡片,卡片上的数字分别为1~n这n个自然数。接着当着大家的面就整理起这些卡片,不一会儿就整理完毕,然后就开始了他的表演:
他一手持着这叠卡片,另一只手从上面开始移动卡片和打出卡片。他先从这叠卡片的上面移动一张卡片放到这叠卡片的下面,然后打出最上面的那张牌,是卡片1(卡片上的数字是1,下类似);接着分两次移动最上面的两张卡片(每次一张)放到这叠卡片的下面,之后打出最上面的那张卡片,是卡片2;接着就是分三次移动最上面的三张卡片到这叠卡片的下面,并打出最上面的那张卡片,是卡片3,依此规律进行,直到打出所有的卡片(大家已经知道,他打出的卡片分别是卡片1~卡片n)。
留给你的问题是:给你这样的一叠n张卡片,你也能像小John一样,把卡片整理好玩上一把?

输入格式

一行,一个整数n,为卡片数量n。

输出格式

一行,1~n这n个自然数的一个排列,表示你整理好的从上到下的n张卡片编号。

输入样例

10

输出样例

9 1 8 5 2 4 7 6 3 10

数据范围

5≤n≤10000。

代码:

CPP
#include<iostream>
#include<algorithm>
#include<cmath>
#include<deque>
using namespace std;
int main(){
    int n;
    deque<int> a={1,2,3,4,5,6,7,8,9,10};
    cin>>n;
    //for(int i=1;i<=n;i++){
    //    a.push_back(i);
    //}
    for(int i=0;i<n;i++){
        if(a.empty()){
            return 0;
        }
        cout<<a[0]<<" ";
        a.pop_front();
        for(int j=0;j<=i;j++){
            a.push_back(a[j]);
            a.pop_front();
        }

    }

    return 0;
}
求调,谢谢了qwq

回复

0 条回复,欢迎继续交流。

正在加载回复...