当前位置: 首页 > news >正文

徐州建设工程材料检测预约网站c 微信网站开发

徐州建设工程材料检测预约网站,c 微信网站开发,WordPress模板使用方法,网站建设及管理汉诺塔游戏规则#xff1a; 规则#xff1a; 汉诺塔问题是一个经典的问题。汉诺塔#xff08;Hanoi Tower#xff09;#xff0c;又称河内塔#xff0c;源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子#xff0c;在一根柱子上从下往上按照大小顺序摞着…汉诺塔游戏规则 规则 汉诺塔问题是一个经典的问题。汉诺塔Hanoi Tower又称河内塔源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定任何时候在小圆盘上都不能放大圆盘且在三根柱子之间一次只能移动一个圆盘。 这篇文章不讲汉诺塔的玩法和实现过程只讲代码为何那么写又是怎样一步一步实现的。其他的基础你们可以去搜索引擎搜索 其实汉诺塔问题难不是难在理解而是难在程序编写的时候很多人理解了汉诺塔的游戏规则也知道怎么去操作但是在写代码的时候就懵了下面举个代码的例子其他语言也是一样的重要的是先了解思路 很多人是在参数变换这里不理解下面我会一步一步的来解析代码每一步的执行过程以及为什么要变换柱子 我们先举例两个圆盘的情况 #include stdio.hvoid hannuota(int n,char A,char B,char C){if(n 1)printf(将编号为 %d 的盘子直接从 %c 柱子移动到 %c 柱子\n,n,A,C);else{hannuota(n-1,A,C,B);printf(将编号为 %d 的盘子直接从 %c 柱子移动到 %c 柱子\n,n,A,C);hannuota(n-1,B,A,C);} }int main(){hannuota(2,A,B,C); return 0; } 代码解析 调用汉诺塔函数首先我们传入的盘子数是 2 定义三根柱子分别为 A、B、C进入函数后对 n 进行判断由于 n 1所以执行 else 的代码块递归调用汉诺塔函数把 n-1 传入并且 A - AB - CC - B。这里三根柱子变了至于为什么变我们接着往下分析。 第一次递归的时候由于 2-11 所以满足 if 条件那么就执行 printf 语句注意了此时的柱子是变了的 A - AB - CC - B 你可以把三根柱子理解为变量里面保存的值变了。 打印这条语句的时候由于 A 保存的值是 AC 保存的值是 Bn 1所以打印的结果就是“将编号为 1 的盘子直接从 A 柱子移动到 B 柱子”这样else 代码块中的第一条代码就执行完成了接下来执行第二条代码用 printf 打印一条信息注意了这里的 nABC 是主函数里传进来的值也就是说 n 2 A AB BC C所以打印的结果是“将编号为 2 的盘子直接从 A 柱子移动到 C 柱子”接着调用第三条代码第二次递归因为次时的盘子位置如下图所示 还需要进行移动把 n-1A BB AC C传给递归函数因为 2-1 满足 if 语句所以直接打印“将编号为 1 的盘子直接从 B 柱子移动到 C 柱子”。至此结束。 上述就是两个盘子的汉诺塔详细的代码实现过程n 个盘子的实现结果也是和上面一样的分析法核心代码不需要变 if(n 1)printf(将编号为 %d 的盘子直接从 %c 柱子移动到 %c 柱子\n,n,A,C);else{hannuota(n-1,A,C,B);printf(将编号为 %d 的盘子直接从 %c 柱子移动到 %c 柱子\n,n,A,C);hannuota(n-1,B,A,C);} 这里给大家说一下这种递归的题是很抽象的没必要每种情况都去详细分析那样太复杂刚开始学的话容易把自己绕晕你只需要详细了解两三个盘子的情况下代码是怎么跑的这就够了。大家按照我上面的分析方法自己试着去分析三个盘子的情况能分析出来证明你理解了然后就过。
http://www.w-s-a.com/news/960575/

相关文章:

  • 丝网外贸做哪些网站最优的赣州网站建设
  • 如何做网站不被查网站开发工程师岗位说明书
  • 做网站需要vps吗网站建设后怎样发信息
  • 网站建立风格二手交易网站开发可参考文献
  • 成都微信网站开发优化大师优化项目有哪些
  • 哪个网站做自考题目免费郑州网站建设公司qq
  • 地方性的网站有前途顺的网络做网站好不好
  • 学校申请建设网站的原因不要网站域名
  • 推荐响应式网站建设子域名查询工具
  • 如何建设学校的微网站广告推广是什么
  • 设计类专业哪个就业前景好网站建设seoppt
  • 济南建站公司网站网站友链查询源码
  • 校园失物招领网站建设涪陵网站建设公司
  • 怎么做盗号网站手机网站建设需要租用什么科目
  • 成品网站是什么意思沈阳seo推广
  • 购物网站后台流程图昆明官网seo技术
  • 创建自己网站全网零售管理系统
  • 江苏省建设厅网站建筑电工证wordpress收费插件大全
  • 北京中国建设银行招聘信息网站宁德蕉城住房和城乡建设部网站
  • 泉州做网站优化哪家好wordpress站点预览
  • 创建门户网站一页网站首页图如何做
  • 服装手机商城网站建设sns社交网站有哪些
  • 无锡工程建设招标网站怎么自己建设公司网站
  • 哪个网站可以学做咸菜安卓软件开发需要学什么软件
  • 自有网站建设的团队遂宁市建设局网站
  • 网站建设哪个好一些网站内容导出
  • 什么网站的页面做的比较好看网上做平面设计的网站
  • 网站建设单选网站建设学校培训学校
  • 可以做app的网站logo设计在线生成免费标小智
  • 网站变更备案做酒类网站