欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

NYOJ 714 Card Trick

发布时间:2025/3/16 编程问答 47 豆豆
生活随笔 收集整理的这篇文章主要介绍了 NYOJ 714 Card Trick 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Card Trick

时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述

The magician shuffles a small pack of cards, holds it face down and performs the following procedure:

  • The top card is moved to the bottom of the pack. The new top card is dealt face up onto the table. It is the Ace of Spades.
  • Two cards are moved one at a time from the top to the bottom. The next card is dealt face up onto the table. It is the Two of Spades.
  • Three cards are moved one at a time…
  • This goes on until the nth and last card turns out to be the n of Spades.
  • This impressive trick works if the magician knows how to arrange the cards beforehand (and knows how to give a false shuffle). Your program has to determine the initial order of the cards for a given number of cards, 1 ≤ n ≤ 13.

    输入
    On the first line of the input is a single positive integer k, telling the number of test cases to follow. 1 ≤ k ≤ 10 Each case consists of one line containing the integer n. 1 ≤ n ≤ 13
    输出
    For each test case, output a line with the correct permutation of the values 1 to n, space separated. The first number showing the top card of the pack, etc…
    样例输入
    2
    4
    5
    样例输出
    2 1 4 3
    3 1 4 5 2
    模拟!
    AC码:
    #include<stdio.h> int main() {int T,n,i,k,step;int visit[15],num[15];scanf("%d",&T);while(T--){scanf("%d",&n);for(i=0;i<=n;i++)visit[i]=0;k=1;i=1;step=0;while(k<=n){if(visit[i]==0){if(step==k){num[i]=k;k++;step=-1;visit[i]=1;}step++;}i++;if(i>n)i=1;}for(i=1;i<=n;i++)printf("%d ",num[i]);printf("\n");}return 0; }

    总结

    以上是生活随笔为你收集整理的NYOJ 714 Card Trick的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。