这篇文章讲述的是算法初级部分的猜牌术问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的《c语言趣味编程1000例》,如有错误或者不当之处,还望各位大神批评指正。

问题描述

魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,并使牌面朝下。然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上边的那张牌数为1,把它反过来正好是黑桃A,他将黑桃A放在桌子上,然后按顺序从上到下数手中的余牌,第二次数1,2,将第一张牌放在这迭牌的下边,将第二张牌翻过来,正好是黑桃2,也将它放到桌子上,第三次数1,2,3,将前面两张依次放到这迭牌地下,再翻第三张牌正好是黑桃3,这样依次进行,将13张牌全部翻出来,准确无误。问魔术师手中的牌原始是怎样安排的。

算法分析

问题描述写的很多也很迷,大致意思是魔术师手中有同种花色的A-K 13张牌,依次数数,数到几翻牌就是几,并将数过的牌放到下面。可以使用一个数组来存放这些牌,数到已存的要跳过,依次将1-13放入数组中即可。

代码实现

package mathematics;public class Q8_MagicianCard {/*** 问题描述:魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,并使牌面朝下。*          然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大声数数,*          你们听,不信?你们就看,魔术师将最上边的那张牌数为1,把它反过来正好是*          黑桃A,他将黑桃A放在桌子上,然后按顺序从上到下数手中的余牌,第二次数*          1,2,将第一张牌放在这迭牌的下边,将第二张牌翻过来,正好是黑桃2,也将它*          放到桌子上,第三次数1,2,3,将前面两张依次放到这迭牌地下,再翻第三张牌*          正好是黑桃3,这样依次进行,将13张牌全部翻出来,准确无误。问魔术师手中*          的牌原始是怎样安排的。* * * 算法分析:问题描述写的很多也很迷,大致意思是魔术师手中有同种花色的A-K 13张牌,*          依次数数,数到几翻牌就是几,并将数过的牌放到下面。可以使用一个数组来*          存放这些牌,数到已存的要跳过,依次将1-13放入数组中即可。*/public static void main(String[] args) {/*初始化长度为13的盒子*/int a[] = new int [14] ;int j=1 ,n,i;/*循环13次,放1-13牌*/for(i=1 ; i<=13 ;i++){/*循环找出要放入的盒子*/n=1 ;do{if(j>13)j=1 ;if(a[j]!=0)j++ ;else{if(n==i)a[j]=i ;j++ ;n++ ;}}while(n<=i) ;}/*输出数组a*/for(int k : a){System.out.print(k+" ");}}
}

样例输出

0 1 8 2 5 10 3 12 11 9 4 7 6 13 

算法_数学问题_Question8_猜牌术(java实现)相关推荐

  1. 算法_数学问题_Question1_计算个人所得税(java实现)

    这篇文章讲述的是算法初级部分的算法数学问题计算个人所得税问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的<c语言趣味编程1000例>,如有错误或者不当之处,还望各位大神批评 ...

  2. 算法_数学问题_Question11_换分币(java实现)

    这篇文章讲述的是算法初级部分的换分币问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的<c语言趣味编程1000例>,如有错误或者不当之处,还望各位大神批评指正. 问题描述 将 ...

  3. 算法_数学问题_Question5_出售金鱼(java实现)

    这篇文章讲述的是算法初级部分的出售金鱼问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的<c语言趣味编程1000例>,如有错误或者不当之处,还望各位大神批评指正. 问题描述 ...

  4. 魔术师的猜牌术(一维数组) C++程序

     魔术师的猜牌术(一维数组) 魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下 .对观众说:我不看牌, 只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看. 魔术师 ...

  5. 魔术师利用一副牌中的13张红桃c语言,魔术师的猜牌术(1) 魔术师利用一副牌中的13张黑桃 - 下载 - 搜珍网...

    魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一 起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌 是什么,我大声数数,你们听,不信?你们就看.魔术师将最上 面的那张牌数为1,把它翻过来 ...

  6. C语言趣味问题系列【1】 猜牌术

    1. 问题描述 猜牌术 一副牌中有13张黑桃,将这副牌整理好为一叠,牌面朝下. 第一次出牌,翻开最上面的那张牌,翻过来的正好是黑桃A,抽出黑桃A放在这叠牌的最底下成为最后一张. 第二次出牌,按顺序从上 ...

  7. 100个python算法超详细讲解:猜牌术

    1.问题描述 魔术师利用一副牌中的13张黑桃,预先将它们排好后叠在一起,并使牌面 朝下.然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大 声数数,你们听,不信你们就看.魔术师将从最上面的 ...

  8. 【刷题记录】【一维数组】魔术师的猜牌术。

    魔术师的猜牌术.魔术师利用一副牌中的十三张黑桃,预先将它们排好后迭在一起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们看看.魔术师将最上面的那张牌数为1, ...

  9. HNUST 1231:猜牌术(水....)

    1231: 趣味程序设计_猜牌术(-) 时间限制: 1 Sec  内存限制: 128 MB 提交: 177  解决: 72 [提交][状态][讨论版] 题目描述 魔术师利用一幅牌中13张黑桃,预先将它 ...

最新文章

  1. Linux命令删除某目录下的所有.svn文件
  2. [SCOI2008] 奖励关
  3. 在Ubuntu中使用OTB-50测试ECO模型
  4. Acwing 135 最大子序和
  5. pyecharts anaconda_Pyecharts安装使用和绘图案例
  6. Alex-Net网络总结
  7. 华为鸿蒙内测报名要报吗,华为鸿蒙HarmonyOS 2.0公测版/内测版申请和招募指南,快来报名尝鲜吧!...
  8. Python成员运算符
  9. JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮
  10. CSS2 及CSS3 在ie浏览器下的支持情况
  11. (转帖)如何在DE2上安裝μClinux作業系統? (Nios II )
  12. PCL 显示一只小白兔和Eigen矩阵
  13. mysql针对特定表不做binlog_MySQL笔记--主从复制
  14. Hibernate教程01
  15. Tapestry5 grid
  16. c语言作业的搜题软件下载,C语言题库app下载-C语言题库下载v2.3 安卓版-西西软件下载...
  17. 回溯算法之迷宫问题(Maze)
  18. Springboot整合轻量级反爬虫组件kk-anti-reptile
  19. Linux 下串口编程(C++ 程序设计)
  20. css中滑轮中是如何做的,横向的网页如何实现鼠标滑轮横向移动?_html/css_WEB-ITnose...

热门文章

  1. yolov5踩过的初坑(关于detect代码可以调用gpu而训练代码无法调用gpu的问题)
  2. 数字乡村解决方案-数字乡村信息化设计方案-数字农业农村规划设计方案-智慧农村数字农村美丽乡村
  3. java常规普氏分析法,python AI换脸 用普氏分析法(Procrustes Analysis)实现人脸对齐...
  4. 我远行,故我在——海陀行点滴感受
  5. JS(Javascript)调用Android原生方法三步走
  6. LeetCode-5299. 找到一个数字的 K 美丽值_Python
  7. 机械加工工艺规程设计的内容及步骤
  8. java实现字母排序_Java实现按中文首字母排序的具体实例
  9. 获取网页链接,比正则表达式更灵活更大众化.
  10. C# Aspose.Words 用法