(百例编程)69.魔术师的猜牌术(1)
2012-06-10 16:14
597 查看
题目:魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下。
对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?
你们就看。魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A放在
桌子上,然后按顺序从上到下数手上的余牌,第二次数1、2,将第一张牌放在这迭牌的
下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1、2、3,将前
面两张依次放在这迭牌的下面,再翻第三张牌正好是黑桃3。这样依次进行将13张牌全
翻出来,准确无误。问魔术师手中的牌原始顺序是怎样安排的?
对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?
你们就看。魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A放在
桌子上,然后按顺序从上到下数手上的余牌,第二次数1、2,将第一张牌放在这迭牌的
下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1、2、3,将前
面两张依次放在这迭牌的下面,再翻第三张牌正好是黑桃3。这样依次进行将13张牌全
翻出来,准确无误。问魔术师手中的牌原始顺序是怎样安排的?
//题目:魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下。 /*对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信? 你们就看。魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A放在 桌子上,然后按顺序从上到下数手上的余牌,第二次数1、2,将第一张牌放在这迭牌的 下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1、2、3,将前 面两张依次放在这迭牌的下面,再翻第三张牌正好是黑桃3。这样依次进行将13张牌全 翻出来,准确无误。问魔术师手中的牌原始顺序是怎样安排的?*/ //BY as1138 2011-10-16 #include <iostream> #include <queue> using namespace std; int main(void) { queue<int> iQue; int ite[13]; int len = 0; int tem; int tj; for (int i=0;i!=13;++i) { iQue.push(i); } for (int j=1;j!=14;++j) { len = iQue.size(); tj = j; if (j>len) { if(j%len == 0) tj = len; else tj = j%len; } for(int n=1;n<tj;++n) { tem =iQue.front(); iQue.pop(); iQue.push(tem); } tem = iQue.front(); iQue.pop(); ite[tem] = j; } int m = 0; while (m != 13) cout<<ite[m++]<<" "; cout<<endl; return 0; }
相关文章推荐
- (百例编程)70.魔术师猜纸牌(2)
- C/C++语言经典、实用、趣味程序设计编程百例精解(4)
- C/C++语言经典、实用、趣味程序设计编程百例精解
- 精彩编程百例1
- (百例编程)2.绘制余弦曲线和直线
- (百例编程)29.求具有abcd=(ab+cd)平方的性质数
- (百例编程)45.真分数分解为埃及分数
- (百例编程)58.拉丁方阵
- C/C++语言经典实用趣味程序设计编程百例精解--大部分是自己写的(1)
- C/C++语言经典、实用、趣味程序设计编程百例精解(2)
- C/C++语言经典、实用、趣味程序设计编程百例精解(5)
- 魔术师的猜牌术(一维数组) C++程序
- (百例编程)3.绘制圆
- (百例编程)30.求素数
- (百例编程)46.列出真分数序列
- (百例编程)79.求π的近似值(2)
- (百例编程)59.填表格
- C/C++语言经典实用趣味程序设计编程百例精解--大部分是自己写的(2)--上
- C/C++语言经典、实用、趣味程序设计编程百例精解(1)
- C/C++语言经典、实用、趣味程序设计编程百例精解(6)