Uva10935 Throwing cards away I 【queue】【习题5-3】

来源:互联网 发布:移动数据俱乐部 编辑:程序博客网 时间:2024/05/15 01:51

题目:Throwing cards away I

题意:1~n张牌,把第一张扔掉,然后把新的第一张牌放到最后,输出扔的牌和最后一张牌

思路:就是一个最基本的队列操作,特殊数据:n = 1:cout << "Discarded cards:\nRemaining card: 1\n";

代码:

#include <iostream>#include <queue>using namespace std;queue<int>Q;int main(){    int n,a[55];    while(cin >> n && n)    {        if(n == 1)        {            cout << "Discarded cards:\nRemaining card: 1\n";            continue;        }        while(!Q.empty()) Q.pop();        for(int i=1;i<=n;i++)           Q.push(i);        int cot = 0;        while(!Q.empty())        {            a[cot++] = Q.front();            Q.pop();            if(!Q.empty()){                Q.push(Q.front());                Q.pop();}        }        int i;        cout << "Discarded cards: ";        for(i=0;i<cot-2;i++)            cout << a[i] << ", ";        cout << a[i++] << endl;        cout << "Remaining card: " << a[i] << endl;    }    return 0;}


0 0