汉诺塔问题
来源:互联网 发布:sql select order by 编辑:程序博客网 时间:2024/06/05 13:24
/* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:cpp1.cpp * 作者:巩凯强 * 完成日期:2015年9月10日 * 版本号:v6.0 * * 问题描述:经典汉诺塔,A.B.C三个柱子,借助于B,将A上边的盘子,依次加到C柱子上。* 输入描述:n为盘子数,即为将m个盘子在A,B,C三个柱子上变换。* 程序输出:变换的过程*/ #include <stdio.h> void move(int, char, char,char); int main() {int discCount;scanf("%d",&discCount); move(discCount,'A','B','C'); return 0; } void move(int n, char A, char B,char C) { if(n==1) printf("%c-->%c\n", A, C); //递归的终止条件 else { move(n-1,A,C,B); printf("%c-->%c\n", A, C); move(n-1,B,A,C); } }
运行结果:
以3个盘子为例。
知识点总结:
以三个盘子为例,运用递归算法,首先将A柱上的第一个盘子移到C盘上,第二个盘子移到B柱上,再把C柱上的盘子移到B柱上,再把A柱上的第三个盘子移到C住上,此时B柱上有两个盘子,先把第一个盘子移到A柱上,再把第二个盘子移到C柱上,最后把A柱上的盘子移到C盘上。在这主要是灵活运用递归算法。
学习心得:
通过这个题目,巩固了递归算法的运用,
0 0
- 汉诺塔问题 背包问题
- 递归问题,汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题.
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- 汉诺塔问题
- MySQL学习笔记之多表连接
- Linux服务器上监控网络带宽的18个常用命令和工具
- skip-name-resolve && skip-host-cache && mysql IP address could not be resolved
- Swift 闭包循环引用安全
- KJframeforandroid框架之 KJBlog学习(二)
- 汉诺塔问题
- redis异常解决:jedis.exceptions.JedisDataException: ERR Client sent AUTH, but no password is set
- java Scanner中的 next() 方法和 nextLine() 方法的区别
- 作为一个初学者,总结一下一个月来学习IOS的成果,使用swift语言
- Session和Cookie的作用和区别
- 动态规划之背包问题-总结和拓展(二)
- H264 NAL 分析
- UINavigationController视图控制器切换(二)
- POJ 2594Treasure Exploration 有源汇上下界网络流 最小流