题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明刚上小学,学会了第一个扑克牌“魔术”,到处给人表演。魔术的内容是这样的:
他手里握着一叠扑克牌:A,2,…J,Q,K一共 13 张。他先自己精心设计它们的顺序,然后正面朝下拿着,开始表演。
只见他先从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是 A;然后再从最下面拿一张放到最上面,再从最下面拿一张翻开放桌子上,是 2;…如此循环直到手中只有一张牌,翻开放桌子上,刚好是 K。
这时,桌上牌的顺序是:A,2,3,4,5,6,7,8,9,10,J,Q,K。
请你计算一下,小明最开始的时候手里牌的顺序是怎样的。
把结果写出来,逗号分割,小明“魔术”开始时,最下面的那张牌输出为第一个数据。
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
思路:
- 可以假设一开始排列为:_ A _ 2 _ 3 _ 4 _ 5 _ 6 _,为了看起来简单明了, a A b 2 c 3 d 4 e 5 f 6 g
- 第一轮翻牌翻出A后::b 2 c 3 d 4 e 5 f 6 g a
- 第二轮翻牌翻出2后:c 3 d 4 e 5 f 6 g a b
- ……
- 直到翻出6后:a b c d e f g
- 再一次翻牌翻出a,此时已翻出的牌有A23456a,显然a是牌7,剩下cdefgb未翻牌
- 再一次翻牌翻出c显然c是牌8,剩下efgdb
- 经过上面的规律可以看出,每一次翻牌都是隔一张牌翻,比如a A b 2 c 3 d 4 e 5 f 6 g,第一轮翻牌翻出A23456,剩下abcdefg,第二轮翻出aceg,剩下bdf,第三轮翻出d,剩下fb,第四轮翻出b,剩下f。所以最后翻出的扑克牌顺序为A23456acegdbf,也就是acegdbf对应7 8 9 10 J Q K
- 所以扑克牌顺序为7 A Q 2 8 3 J 4 9 5 K 6 10