汉诺塔游戏规则描述:
有三根杆子star,station,end。star杆上有 N (>=1)个方块,方块尺寸由下(1)到上(n)依次变小。要求按下列规则将所有圆盘移至 end 杆:
每次只能移动一个圆盘;
大盘不能叠在小盘上面。

解题思路:
1、如果只有方块1,则把方块1直接从star挪到end;

2、如果方块1上面有其他(n-1)个方块压着,则:
  2-1:先把上面的(n-1)方块从star挪到station;(此时n-1个方块体在station上)
  2-2:把1从star挪到end;

  2-3:此时,以station作为起始的柱子,star作为中转柱子,重复上述步骤:
   2-3-a. 将(n-2)个方块先挪到star上;
   2-3-b. 再将第n-1个方块挪到end上;
   2-3-c. 重复上述步骤

//定义汉诺塔函数,其中有4个参数
//第一个参数是汉诺塔盘子的层数
//第2-4个参数代表汉诺塔的3根柱子
//起始柱子(star)、中转柱子(station)、目标柱子(end)
//要求把方块从起始柱子移动到目标柱子
void Hano(int n,char star, char station, char end)
{if (n==1){printf("Move from %c to %c\n", star,end);}else{Hano(n-1, star, end, station);Hano(1, star, station, end);Hano(n-1, station, star, end);}
}#include <stdio.h>
int main()
{char A='A';char B='B';char C='C';int n = 0;scanf("%d",&n);Hano(n,A,B,C);return 0;
}

运行结果:

程序运行示意:

汉诺塔 - 递归算法相关推荐

  1. 汉诺塔递归算法进阶_进阶python 1递归

    汉诺塔递归算法进阶 When something is specified in terms of itself, it is called recursion. The recursion give ...

  2. python汉诺塔_汉诺塔递归算法/搬金盘的婆罗门 - Python实现

    汉诺塔递归算法/搬金盘的婆罗门 - Python实现 版权声明 本文节选自作者本人的图书<Python编程基础及应用>,高等教育出版社.本文可以在互联网上自由转载,但必须:注明出处(作者: ...

  3. 汉诺塔递归算法/搬金盘的婆罗门 - Python实现

    汉诺塔递归算法/搬金盘的婆罗门 - Python实现 本文引用自作者编写的下述图书; 本文允许以个人学习.教学等目的引用.讲授或转载,但需要注明原作者"海洋饼干叔 叔":本文不允许 ...

  4. 汉诺塔-递归算法深入理解

    汉诺塔算法就3个步骤: 第一,把a上的n-1个盘通过c移动到b: 第二,把a上的最下面的盘移到c: 第三,因为n-1个盘全在b上了. 所以把b当做a重复以上步骤就好了.不过,思考过程还是很痛苦的,难以 ...

  5. python汉诺塔递归算法_Python文摘:汉诺塔问题与递归算法

    历史传说: 在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔.不论白天黑夜 ...

  6. python汉诺塔递归算法流程图,python实现汉诺塔递归算法经典案例

    Python汉诺塔递归问题 python请用递归算法编程解决汉诺塔问题 在线等 关于python递归函数实现汉诺塔 def move(n,a,b,c): #1 if n==1: #2 print(a, ...

  7. python汉诺塔递归算法流程图_python实现汉诺塔的图解递归算法

    一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小 ...

  8. python汉诺塔递归算法流程图_详解汉诺塔Python递归程序

    学习递归时,很多小伙伴对汉诺塔的递归算法非常疑惑,不清楚那么复杂的移动过程,为何用四五行代码就给解决了.汉诺塔问题:有三根柱子A,B,C.A柱上有若干碟子,每次移动一块碟子,小的只能叠在大的上面,把所 ...

  9. 对汉诺塔递归算法的理解(图解,附完整代码实现)

    前情提要: 首先说一下汉诺塔游戏的规则:如下图所示,有三个柱子A,B,C,我们要做的是把A柱的所有圆盘,全部转移到C柱上,转移时遵循的规则如下: 1.每次只能移动一个圆盘 2.所有的大圆盘必须在小圆盘 ...

最新文章

  1. jquery validate 详解一
  2. 清华大学:2021元宇宙研究报告!
  3. 怎么调整字段长短_木北造型:空气刘海卷发筒怎么用 木北造型告诉您
  4. QML与Qt C++ 交互机制详解
  5. linux下简单的邮件配置
  6. 昨天一冲动,给头儿说留所了。。。
  7. tfs php,TFS的原理及应用
  8. cache的替换策略
  9. CIO40:家电巨头数字化运营历程(IT-DT-OT)
  10. 【计算1970年到任意一个年月距离有多久】
  11. 任务栏微信图标显示为白框,解决办法
  12. np.cosh没有分配_JavaScript中带有示例的Math.cosh()方法
  13. 新建几个普通用户wukong,wuneng,wujing,他们都属于xiyouji组的成员,其中wujing没有和系统交互的shell~
  14. 【luogu P3674】 小清新人渣的本愿
  15. Springboot 小巧简便的限流器使用 RateLimiter
  16. java读取配置文件信息生成Map对象
  17. HiPQTools工具HiPQStitchingTool标定(二)
  18. Prodigal基因预测
  19. Python学习之numpy生成矩阵基础用法
  20. Vue.js - Font Awesome字体图标的使用详解(vue-fontawesome库)

热门文章

  1. LiteOS内核开发(二)
  2. 【计算机毕业设计】汽车租赁管理系统
  3. [深度学习从入门到女装]keras实战-Unet3d(BRAST2015)
  4. 4 步搞定 Hive 增量更新
  5. 7月13日 “B 站崩了” 事件分析
  6. Java求矩形三角形圆形梯形的面积和周长小程序页面
  7. 前端学PHP之会话Session
  8. 动态规划——背包问题(01背包问题)
  9. if……else……if语句实例
  10. VVC/H.266参考软件VTM算法描述 [译](一. CTU划分部分)