递归-汉诺塔问题
来源:互联网 发布:华为网络技术培训 编辑:程序博客网 时间:2024/05/16 08:26
关于汉诺塔问题的解决,直接考虑最后一个圆盘。
1.当我们将a塔最底下的圆盘移动b塔时,其他n-1个圆盘只能顺序的堆在c塔上。所以我们首先要做的是将n-1个圆盘从a塔移动到c塔,以b塔为辅助,即hanoi(n-1, a, c, b)
2.将a塔最底盘移动到b盘
3.将c塔上的n-1个盘移动到b塔上,以a为辅助。
递归调用,即可解决汉诺塔问题。
//汉诺塔问题#include <stdio.h>int count = 0;void hanoi(int n, int a, int b, int c){ //将n个圆盘从a移动到b,以c为辅助 if(n > 0){ hanoi(n-1, a, c, b); //首先将n-1个圆盘从a移动到c,以b为辅助 // move(a, b); //将a中此时顶部的盘移动到b count++; //移动一次 hanoi(n-1, c, b, a); //将移动到c的n-1个圆盘从b移动到c,以a为辅助 }}int main(){ hanoi(10, 0, 0, 0); //在此程序中a,b,c并无实际意义 printf("10层汉诺塔解决步数为:%d\n", count); return 0;}
0 0
- 递归问题,汉诺塔问题
- 递归解决汉诺塔问题
- 递归求解汉诺塔问题
- 汉诺塔问题详解 (递归)
- 汉诺塔问题 递归
- 汉诺塔问题,递归
- 汉诺塔问题递归解法
- 递归实现汉诺塔问题
- 汉诺塔问题(递归)
- 汉诺塔问题详解 (递归)
- 递归实现汉诺塔问题
- 递归_汉诺塔问题
- 递归--汉诺塔问题
- 汉诺塔问题递归算法
- 递归算法-汉诺塔问题
- 递归算法--汉诺塔问题
- 递归实现汉诺塔问题
- 经典递归问题--汉诺塔
- WINCE下隐藏鼠标
- 开发中 常用 js 记录
- Android Studio compile project添加一个本地项目依赖包时,提示程序包不存在
- Oracle正则表达式替换字符串
- EventBus 3.0进阶-Delivery Threads (ThreadMode)传送线程(线程模式)
- 递归-汉诺塔问题
- bzoj 3307: 雨天的尾巴
- ChemDraw中如何绘制Fischer葡萄糖结构图
- 极限学习机(ELM)算法的matlab与C++实现
- Java transient关键字使用小记
- monodevelop引用dll及制作dll
- Sybase 基础SQL查询
- 【BZOJ1015】【JSOI2008】星球大战starwar
- png的CRC源代码_带入图片数据测试代码