當前位置:編程學習大全網 - 編程軟體 - 從1開始排序,1放出來,然後第二張牌放在下面,第三張牌放出來是2,然後第四

從1開始排序,1放出來,然後第二張牌放在下面,第三張牌放出來是2,然後第四

魔術師翻牌:魔術師把撲克中的13張黑桃預先排好後,牌面朝下放在手中。第壹次

數壹張牌,翻過來恰好是A,放在桌面上,第二次數兩張牌,數1的那張放在手中牌

的下面,數2的那張牌翻過來恰好是2,也放在桌面上,再數三張牌,順次把數1、2

的牌放在手中牌的下面,第三張牌翻過來恰好是3,仍然放在桌面上。這樣繼續做下

去,直到手中的13張牌全部翻完為止,此時桌面上的牌的順序恰好是:A,2,3,4

,5,……,J,Q,K。請編程序找出魔術師手中的那13張牌的原始順序。

[分析]可看作每次翻第i張牌前,先移動i-1張牌到牌底,再翻壹張即為牌號i。

var i,j,k,t,n:integer;

a:array[1..50] of integer;

begin

write('N='); readln(n);

a[n]:=1;

for i:=n-1 downto 1 do

begin

a[i]:=1;

for j:=i+1 to n do inc(a[j]);

for j:=1 to i-1 do

begin

t:=a[n];

move(a[i],a[i+1],(n-i)*sizeof(a[1]));

a[i]:=t;

end;

end;

for i:=1 to n do write(a[i],' ');

writeln;

end.

  • 上一篇:液晶電視不小心按了視頻顯示,沒信號怎麽調回來?
  • 下一篇:小天鵝全自動滾筒洗衣機夜間模式怎麽使用
  • copyright 2024編程學習大全網