zoukankan      html  css  js  c++  java
  • UVa 10935 Throwing cards away I

      《算法竞赛入门经典》6.1的题目。题目大意:给n张牌,放成一叠,从上到下编号从1到n,当至少还有两张牌时,丢弃最上面的牌,然后把新的最上面的牌放到最下面,一直重复,直到只剩下一张牌,输出丢弃牌的序列。

      用队列进行模拟,不过第一次提交的时候PE了,格式说明一下:

    ”Discarded cards:“,然后每一数字前加一个空格,第一个数字之后的数字要在空格前加逗号。代码如下:
    View Code
     1 #include <cstdio>
     2 #include <cstdio>
     3 #include <queue>
     4 using namespace std;
     5 
     6 const int maxn = 60;
     7 queue<int> q;
     8 
     9 int main()
    10 {
    11 #ifdef LOCAL
    12     freopen("in", "r", stdin);
    13 #endif
    14     int n;
    15     int ans[maxn];
    16     while(scanf("%d", &n) != EOF && n)
    17     {
    18         for(int i = 1; i <= n; i++)   q.push(i);
    19         int k = 0;
    20         while(!q.empty())
    21         {
    22             ans[k++] = q.front();
    23             q.pop();
    24             int t = q.front();
    25             q.pop();
    26             q.push(t);
    27         }
    28         printf("Discarded cards:");
    29         for(int i = 0; i < n-1; i++)
    30         {
    31             if(i)   printf(",");
    32             printf(" %d", ans[i]);
    33         }
    34         printf("\nRemaining card: %d\n", ans[n-1]);
    35     }
    36     return 0;
    37 }
    38             
  • 相关阅读:
    数据分析05 /pandas的高级操作
    ABP之应用服务(2)
    ABP之应用服务(1)
    ABP之仓储
    ABP之创建实体
    ABP之框架体系
    ABP之项目的搭建
    2018年,加油!!!
    WF的简单使用
    WCF之通信工厂的简单使用
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3056729.html
Copyright © 2011-2022 走看看