回 帖 发 新 帖 刷新版面

主题:13张扑克

魔术师将一迭13张扑克面朝下,翻开第一张为A,将第一张放在桌子上,将后一张
放到这迭牌的最下面,翻开下一张是2,把2放在桌子上,然后依次数出2张放到最底面
下一张是3,……,最后一张是K,编程输出这迭牌原先顺序

回复列表 (共5个回复)

沙发

program pai;
var
a:array[1..13] of integer;
m,n,t,i,j:integer;
begin
   a[1]:=1;//只要不是0就代表以经翻出去了的牌,以后就不对它作处理了.
   for i:= 2 to 13 do a[i]:=0;//初使化后面还没有翻的牌
   t:=0;
    for i:= 2 to 13 do
      begin
        n:=0;//n是数的牌数
        repeat
          t:=t+1;
           if t=14 then t:=1;//一共只有13张牌呀~数完了又倒回来数(不管牌怎么往后放,从左到右牌的顺序是不变的~所以不用考虑牌往后放的问题)
           if a[t]=0 then n:=n+1//判断是否以经翻开,没翻就数牌
           until  n=i;//当数到i了
           a[t]:=i;//写入现在翻开的是几
      end;
      for j:= 1 to 13 do
       write(a[j]:4);
   end.

板凳

答案:
1  8  2  5  10  3  12  11  9  4  7  6  13

3 楼

LZ不就是去年年底在PASCAL论坛上和那个sss333一起捣乱的吗?人家斑竹都举报过你的。

4 楼

!

5 楼


我来回复

您尚未登录,请登录后再回复。点此登录或注册