回 帖 发 新 帖 刷新版面

主题:请教高手关于扑克问题

有52张牌.使它们全部正面朝上.从第2张牌开始.把反是2的倍数的位置上牌将正面朝下.接着从第3张开始将3的倍数做相反处理:按照此规律 知道第1 张要翻的牌是第52张为止;统计最后有几张牌朝上,并打印出它们的位置!!??
      帮忙,哦!@!@@

回复列表 (共3个回复)

沙发

模拟阿,很简单

板凳

呵呵  能否告诉详情呢??////

3 楼

程序很麻烦,我只大概说一下
1.定义
type
  card=record
         number:integer;
         to:line;
       end;
  line=^card;
2.申明两个line类型变量,然后用他们建一个链表
3.用循环给这个链表里所有节点的number赋值(1到52)
4.先把指针指到2,利用节点的number值将指针以2的倍数向后指,并把指到的节点删掉,直到链表尾部
5.再把指针指到3,重复上面的
6.等指针指到number值是52的节点时,停止,除此之外剩下的节点就是朝上的牌.
7.把剩下节点的number值write出来就完了.

我来回复

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