用循环链表解决魔术师发牌问题

这次利用循环链表解决魔术师发牌问题!问题是这样的:魔术师利用一副牌中的13张黑牌,预先给他们排好后叠在一起,牌面朝下面,对观众们说“我不看牌,只需要数一数就可以猜到 每张牌是什么~”然后呢,魔术师讲最上面的那张牌数为1 ,把它翻过来正好是黑桃A,将黑桃A放在桌子上,第二次数1,2,将第一张牌放在这些牌的下面,将第二张牌翻过来 正好是黑桃2 ,也将它放在 桌子上 ,这样,依次进行下去,13张牌被...
摘要由CSDN通过智能技术生成

这次利用循环链表解决魔术师发牌问题!
问题是这样的:魔术师利用一副牌中的13张黑牌,预先给他们排好后叠在一起,牌面朝下面,对观众们说“我不看牌,只需要数一数就可以猜到 每张牌是什么~”
然后呢,魔术师讲最上面的那张牌数为1 ,把它翻过来正好是黑桃A,将黑桃A放在桌子上,第二次数1,2,将第一张牌放在这些牌的下面,将第二张牌翻过来 正好是黑桃2 ,也将它放在 桌子上 ,这样,依次进行下去,13张牌被全部翻出,而且 准确无误~

解释:一开始,把叠好的牌放在桌面上铺好 一列, 最上面的那张为 黑桃A 也就是 1,然后把它拿出来,扔掉 ,然后 魔术师 知道剩下牌的第二张就是 2,然后他又装个样子 走过去,把2 拿出来扔掉 , 然后剩下牌 第三张就是3 然后又装装样子 走过去 把3 拿出来 又扔掉~ 以此类推 ,不难理解把
在这里插入图片描述
这副牌摆放的位置如上图 ,如果刚才解释 还看不懂的话 看下这幅图 方便理解 ~
下面 是这道题目的代码:

#include<stdio.h>
#include<stdlib.h>
#define len sizeof(list)
struct list
{
   
  int data;
  struct list *next;
}<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是牛大春呀

老板糊涂啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值