zoukankan      html  css  js  c++  java
  • 2015 HUAS Summer Training#1~C

    10935 Throwing cards away I Given is an ordered deck of n cards numbered 1 to n with card 1 at the top and card n at the bottom. The following operation is performed as long as there are at least two cards in the deck:

    Throw away the top card and move the card that is now on the top of the deck to the bottom of the deck.

    Your task is to find the sequence of discarded cards and the last, remaining card.

    Input

    Each line of input (except the last) contains a number n ≤ 50. The last line contains ‘0’ and this line should not be processed.

    Output

    For each number from the input produce two lines of output. The first line presents the sequence of discarded cards, the second line reports the last remaining card. No line will have leading or trailing spaces. See the sample for the expected format.

    Sample Input

    7

    19

    10

    6

    0

    Sample Output

    Discarded cards: 1, 3, 5, 7, 4, 2

    Remaining card: 6

    Discarded cards: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 4, 8, 12, 16, 2, 10, 18, 14

    Remaining card: 6

    Discarded cards: 1, 3, 5, 7, 9, 2, 6, 10, 8

    Remaining card: 4

    Discarded cards: 1, 3, 5, 2, 6

    Remaining card: 4

    解题思路:首先这个循环是以0的输入为结束标志,所以在判断输入时要先看看它是不是为0.这个解题要用到队列,队列的特点是先进先出,利用front()进行数据的读取,pop()进行出队,push()进行入队,基本上就可以写出一个轮廓。注意一点的是,这个步骤要在这个队列不为空的情况下进行。还要注意题目要求的输出格式,输出第一行的最后一个数字后面没有逗号隔开,所以在每一次读取与出队之后要判断这个队列是否为空,然后再进行下一步操作。

    程序代码:
    #include<cstdio> #include<queue> #include<iostream> using namespace std; int main() { int n; while(scanf("%d",&n)==1&&n) { int x; queue<int>s; for(int i=1;i<=n;i++) s.push(i); int flag=0; printf("Discarded cards:"); while(!s.empty()) { x=s.front (); s.pop (); if(s.empty()) break; if(!flag)cout<<" "<<x; else cout<<", "<<x; flag=1; x=s.front(); s.pop(); s.push(x); } cout<<endl; printf("Remaining card:"); printf(" %d ",x); } return 0; }
  • 相关阅读:
    全文检索 部署及使用
    mysql 数据库常见的一些基本操作 !详不详细你说了算!
    Django 语法笔记
    CentOs Linux 对于 修改 yum源 为 阿里
    小白老凯,初出茅庐!请多关照!简单分享一些 mysql 数据库的安装操作!请给为大神雅正!
    sql server 之一条Sql语句引发的悲剧
    翻译高质量JavaScript代码书写基本要点(转载)
    翻编JavaScript有关的10个怪癖和秘密(转载)
    IIS7.5部署ASP.NET失败
    linq to sql报错,
  • 原文地址:https://www.cnblogs.com/chenchunhui/p/4654704.html
Copyright © 2011-2022 走看看