汉若塔问题
来源:互联网 发布:数据部分迁移方案 编辑:程序博客网 时间:2024/05/16 13:45
汉若塔问题:就是把A柱子上面从大到小一次叠放的盘子借助B柱移到C柱上去,规则是一次只能移动一个盘子,大盘子不能放到小盘子之上
采用递归的方法来接:(1) 先将A上面的n-1个盘子,移到B柱上
(2) 然后把A上最大的一个盘子放到C上去
(3) 然后把B上面的n-1个盘子移到A上去
汉若塔用递归思考首先考虑一种临界状态,把n-1个上面的盘从A—B, 就是把n从A移动到C,最后把n-1个盘从B---C,(注意在考虑把n-1个盘从B---C的时候就出现递归调用,如果把A,B盘交换就又重复上面的流程了,最后到n = 1的时候就返回)
代码实现
public void run(int n,char a,char b,char c)
{
if(n==1)
{
move(n,a,c);//等于1的时候把盘从A移动到C
}
else
{
run (n-1,a,b,c);//递归调用把a上面的n-1个盘移动到B上,怎么表示移动?把柱子//交换不就是移动了。
move(n,a,c);
run (n-1,b,a,c);//把把n-1个盘冲A移动到B上以后又重复前面的所有步骤,把n-1个盘冲当做启始柱子。所以把A和B柱子交换.
}
}
- 汉若塔问题
- 汉若塔问题
- 汉若塔问题
- 汉若塔问题算法程序
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- 问题
- oracle 分页(三层嵌套) top 实现
- 伸长的守候
- linux中的安装包格式 和 安装方式 介绍
- 总结一下网站注入与防范的方法
- Redis应用介绍
- 汉若塔问题
- 26个美国人常用的经典句子
- 何时使用虚函数?
- 有一个整数数组,请求出两两之差绝对值最小的值
- Unity 3D--摄像机平滑跟随(方法二)
- 学习 1-在Ubuntu上为Android系统编写Linux内核驱动程序
- 用python ctypes调用动态链接库
- jquery.treeview使用笔记
- 逆向工程——二进制炸弹(CSAPP Project)