假设有三根柱子要求,将A柱子上的所有盘子移动到B柱子上;
n个盘子标记为1, 2, 3, .... n ;
三个柱子标记为 A、B、C ;
初始状态所有的盘子都在A柱子上 ;
移动磁盘条件
1. 一次只能移动一个磁盘
2. 不能在较小的磁盘上放置较大的磁盘
理论主题
1. 递归函数和堆栈
2. 递归关系
n = 1
: 当直接将盘子从A(起始柱子) 移到B(目标柱子)
n > 1
: 将问题从宏观考虑
1. 借助柱子B将n-1个盘子从A柱子移动到C柱子
2. 此时A柱子上只有一个盘子直接移动到B(目标柱子)
3. 借助柱子A将n-1个盘子从C柱子移动到B柱子
一定要确定好哪个是起始柱子哪个是目标柱子;
Java中的值传递
参考:
原文:https://www.cnblogs.com/openmind-ink/p/13599799.html