2.8魔术师的秘密

1.题目描述:魔术师利用一幅牌中的13张黑桃,预先将他们排好后迭在一起,并使牌面朝下。然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么。魔术师将最上面的那张牌数为1,把他翻过来正好是黑桃A,他将黑桃A放在桌子上,然后按顺序数1,2,将数的1放到牌的最后面,然后第二张翻过来正好是2,以此次这样,数了十三遍,正好将这十三张全部数出来。问魔术师原始的牌序是什么。

2.源代码:

#include<iostream>
using namespace std;
int main()
{
int b=0;
int a[13] = {0};
int o = 0;//用来记录走到哪个位置了;
for (int i = 1; i <=13; i++)
{
int k = 0;//用来记录向后数了几个了;
for (int j = o;; j++)//向后进行遍历;
{

if (j > 12) { j =j%12; }
if (a[j]==0) { k++; }//将之前抽出的牌在这次循环中排除;
if (k == i) { a[j] = i;o=j; break; }// 如果数的数达到符合的条件就输出;

}
for (int i = 0; i < 13; i++)//遍历输出;
{
cout << a[i] << " ";
}
return 0;
}

posted @   Snor9  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示