汉诺塔问题——含代码
来源:互联网 发布:centos git使用 编辑:程序博客网 时间:2024/05/29 09:14
思路:
很明显的递归思路
要把N个圆盘从塔座A移至塔座C,则要先将N-1个圆盘从塔座A移至塔座B,将第N的从塔座A移至塔座C,再将N-1个圆盘从塔座B移动到塔座C,
而要将N-1个圆盘从塔座A移动到塔座B,则要先将N-2个圆盘从塔座A移动到塔座C……剩余操作同上;
单独看一次移动的过程,看第一次,将N-1从A移至B,涉及到的操作对象有N-1个圆盘,塔座A,塔座B,将第N个圆盘从A移至C,涉及到的操作对象有圆盘N,塔座A,塔座C,将N-1个圆盘从B移至C,涉及到的有塔座B,塔座C,故,这么一次完整的移动过程涉及到了任务需要移动的所有圆盘,所有塔座,所以这个递归函数的参数需要有一个参数表示圆盘三个参数表示塔座,接下来就是完全的用代码模拟这么一次完整的移动过程:
public void printStrategy(int num, char from, char mid, char to) { if (num == 1) { System.out.println("move " + num + " from " + from + " to " + to); } else { printStrategy(num - 1, from, to, mid); System.out.println("move " + num + " from " + from + " to " + to); printStrategy(num - 1, mid, from, to); } }
0 0
- 汉诺塔问题——含代码
- 归并排序——含代码
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- Java并发编程(5):volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 第五篇:volatile变量修饰符—意料之外的问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)
- 文件上传有关问题(含代码)
- 【Java并发编程】之五:volatile变量修饰符—意料之外的问题(含代码)(r)
- UVA 12504
- 文件上传简单案例(后台Servlet处理)
- Single Number (I II III)
- 500. Keyboard Row
- 进程
- 汉诺塔问题——含代码
- 排序算法--亲测有效
- SSH框架整合
- 运算符号
- 1011. A+B和C (15)
- 二叉树的线索化
- 安装NodeJS、Vue
- 2016华成杯赛后总结
- 字符串Ascll格式转16进制