• 卡片游戏 (关于队列)


    一、原题

    桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张放到整叠牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌。 

    样例输入:7

    样例输出:1 3 5 7 4 2 6

    二、题目源代码

    #include<cstdio>
    #include<queue>
    using namespace std;
    
    queue<int> q;
    int main()
    {
    int n;
    scanf("%d",&n);
    for( int i = 0;i < n;i++)  q.push(i+1);
    while(!q.empty())
    {
    printf("%d ",q.front());
    q.pop();
    q.push(q.front());
    q.pop();
    }
    return 0;
    }

    三、心得体会

    这道题主要是学习关于队列的知识。

    C++中有queue类,是在头文件<queue>中定义的。

    类中有主要6个成员函数:empty();   size();   push();   front();   back();   pop();  各自有不同的用处。

    多学习新的知识,从而提高自己的见识与能力。

  • 相关阅读:
    Java io流 之file类(文件和文件夹)
    异常处理
    封装
    面向对象与类
    包与模块的使用
    模块
    递归函数
    迭代器
    装饰器
    函数基础2
  • 原文地址:https://www.cnblogs.com/fightfor/p/3851594.html
Copyright © 2020-2023  润新知