Throwing cards away I 卡牌游戏 UVA 10935

解题思路:本题通过STL中的队列queue很容易就写出代码,唯一值得注意的是当输入为1时;

  1. #include
  2. #include
  3. using namespace std;
  4. queueq;
  5. int main(){
  6.     int n;
  7.     while(scanf("%d",&n)==1 && n){
  8.         for(int i=1;i<=n;i++)
  9.             q.push(i);
  10.             int len=q.size();
  11.             if(len==1)printf("Discarded cards:\n");
  12.             else printf("Discarded cards: ");
  13.         while(len>=3){
  14.             printf("%d, ",q.front());
  15.             q.pop();
  16.             int temp=q.front();
  17.             q.pop();
  18.             q.push(temp);
  19.             len=q.size();
  20.         }
  21.         if(len!=1)
  22.         {
  23.         printf("%d\n",q.front());
  24.         q.pop();
  25.         }
  26.         printf("Remaining card: %d\n",q.front());
  27.         q.pop();
  28.     }
  29.     return 0;
  30. }

你可能感兴趣的:(STL初步)