主题:请教高手关于扑克问题
tl3shi
[专家分:110] 发布于 2006-07-22 12:26:00
有52张牌.使它们全部正面朝上.从第2张牌开始.把反是2的倍数的位置上牌将正面朝下.接着从第3张开始将3的倍数做相反处理:按照此规律 知道第1 张要翻的牌是第52张为止;统计最后有几张牌朝上,并打印出它们的位置!!??
帮忙,哦!@!@@
回复列表 (共3个回复)
沙发
贺天行宝 [专家分:2300] 发布于 2006-07-22 20:27:00
模拟阿,很简单
板凳
tl3shi [专家分:110] 发布于 2006-07-23 10:56:00
呵呵 能否告诉详情呢??////
3 楼
PascalCon [专家分:30] 发布于 2006-07-23 18:27:00
程序很麻烦,我只大概说一下
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出来就完了.
我来回复