Throwing cards away I 卡牌游戏 UVA 10935

红太狼 2024-02-17 18:48 140阅读 0赞

解题思路:本题通过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. }

发表评论

表情:
评论列表 (有 0 条评论,140人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JLOI 2013 游戏

    问题描述: N个人坐成一圈玩游戏。一开始我们把所有玩家按顺时针从1到N编号。首先第一回合是玩家1作为庄家。每个回合庄家都会随机(即按相等的概率)从卡牌堆里选择一张卡片,假