取一幅扑克牌中所有的方块,
按A、2、3、4、5、6、7、8、9、10、J、Q、K的顺序从上至下排好,
并按下面的要求逐一取走牌:
翻出最上面的一张,放在一旁,把上面的一张牌放到这叠牌的最下面;
然后再翻开最上面的一张牌,放在一旁,再把上面的一张牌放到最下面;
重复上述过程,直到翻完最后一张牌。
按照顺序输出每次放在一旁的牌的牌面。
[Python]
def card(n): if n == 1: return 'A' elif n == 11: return 'J' elif n == 12: return 'Q' elif n == 13: return 'K' else: return n linked = [] for i in range(12): linked.append([i+1, i+1]) linked.append(_____(1)_____) precedent = 12 b=[] for i in range(13): current = _______(2)_________ b.append(card(_____(3)__________)) _____(4)________=linked[current][1] _____(5)________= linked[precedent][1] print("lastcard:",b[-1],sep='') for i in range(len(b)): print(b[i],end=' ')
[C++]
#include<iostream> using namespace std; const string cards = "A23456789 JQK"; int link[20], take[20]; int precedent, current; void print(int x) { if(x == ___(1)____)cout << "10 "; else cout << cards[x-1] << " "; } int main( ) { for(int i=1; i < 13; i++) link[i] = i+1; link[13] = ____(2)____; precedent = 13; for(int i = 1; i <= 13; i++) { current = _____(3)_____; take[i] = _____(4)_____; _____(5)_____ = link[current]; _____(6)_____ = link[precedent]; } cout << "lastcard:"; print(precedent); cout << endl; for(int i = 1; i <= 13; i++) print(____(7)_____); cout << endl; return 0; }