汉诺塔递归方法
来源:互联网 发布:摄像头照相软件 编辑:程序博客网 时间:2024/06/08 01:21
/*
hannuota(int n, char X, char Y, char Z) X柱子是要移动的柱子,Y柱子是X移动要借助的柱子,Z柱子是要放在这个柱子上
在 hannuota函数中的递归判断方法
如果是1个盘子
直接将A柱子上的盘子从A移到C
否则
先将A柱子上的n-1个盘子借助C移到B
直接将A柱子上的盘子移到C
再将B柱子上的n-1个盘子借助A移到C
*/
实际算法:
hannuota(int n, char X, char Y, char Z) X柱子是要移动的柱子,Y柱子是X移动要借助的柱子,Z柱子是要放在这个柱子上
在 hannuota函数中的递归判断方法
如果是1个盘子
直接将A柱子上的盘子从A移到C
否则
先将A柱子上的n-1个盘子借助C移到B
直接将A柱子上的盘子移到C
再将B柱子上的n-1个盘子借助A移到C
*/
实际算法:
#include <stdio.h>void hannuota(int n, char A, char B, char C){ if( 1 == n ) //如果是1个盘子 printf("将编号为%d的盘子直接从%c柱子移到%c柱子\n", n, A, C); // 直接将A柱子上的盘子从A移到C else { hannuota(n-1 , A, C, B); //先将A柱子上的n-1个盘子借助C移到B printf("将编号为%d的盘子直接从%c柱子移到%c柱子\n", n, A, C); hannuota(n-1 , B, A, C); //再将B柱子上的n-1个盘子借助A移到C }}int main(void){ char ch1 = 'A'; char ch2 = 'B'; char ch3 = 'C'; int n; printf("请输入盘子的个数:"); scanf("%d",&n); hannuota( n, ch1, ch2, ch3); return 0;}
0 0
- 汉诺塔递归方法和非递归方法
- 递归方法汉诺塔
- 递归方法求解汉诺塔!
- 汉诺塔递归方法
- 汉诺塔递归方法的实现
- java递归方法解决汉诺塔
- 递归方法の汉诺塔问题
- 递归方法
- 递归方法
- 递归方法
- 递归方法
- 递归方法
- 递归方法
- 递归方法
- 递归方法
- 递归方法
- 采用递归和非递归方法求解汉诺塔问题
- 用递归方法求解汉诺塔问题
- 网络解析多接口
- 集合操作 异常处理
- Sqoop:连接MySQL和Hadoop的桥梁
- Latex数学公式中的空格
- Java基础(四)——面向对象的四大特征
- 汉诺塔递归方法
- 【集训讲课8.15】Codeforces 452F
- 设计模式C++版:第四式建造者模式
- Shader特效——"Floyd Steinberg 抖动” 的实现 【OpenCV】【GLSL】
- Python 制作Android开发 所需的适配不同分辨率的套图
- java基础知识IO简单介绍
- 由环境配置引发的java基础知识讨论
- ThreadPoolExecutor类
- 面试总结(C++基础)