zoukankan      html  css  js  c++  java
  • 卡片游戏

    Description

    桌上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张放到整叠牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌。 

    Input

    第一行为一个整数t(0<t<40),表示测试用例个数。以下t行每行包含一个整数n(0<n<40),为一个测试用例的牌数。 

    Output

    为每个测试用例单独输出一行,该行中依次输出每次扔掉的牌以及最后剩下的牌,每张牌后跟着一个空格。

    Sample Input

    2
    7
    4 

    Sample Output

    1 3 5 7 4 2 6
    1 3 2 4




    1. #include<stdio.h>
    2. int main(){
    3. int test, n, m, i, j, k, a[100], ans;
    4. scanf("%d",&test);
    5. while(test-->0){
    6. scanf("%d",&n);
    7. for(i =0; i < n; i++) a[i]=1;
    8. printf("1 ");
    9. a[0]=0;
    10. k =0;
    11. j =0;
    12. for(i =1; i < n; i++){
    13. k =0;
    14. while(k <2){
    15. j =(j +1)% n;
    16. k += a[j];
    17. }
    18. printf("%d ", j +1);
    19. a[j]=0;
    20. }
    21. printf(" ");
    22. }
    23. }



  • 相关阅读:
    流 例题

    容器集合整理
    容器集合
    容器 集合知识点
    面向对象回顾
    面向对象例题
    Java常用的8大排序算法
    Java中两个动态代理
    为什么synchronized无法禁止指令重排,却能保证有序性
  • 原文地址:https://www.cnblogs.com/sysu-zhengwsh/p/3674189.html
Copyright © 2011-2022 走看看