汉诺塔的递归算法是什么?

汉诺塔的问题,其实就是把A柱上由小到大排列的圆环,按照同样的大小顺序,移动到C柱上,过程中可以使用B柱。

其递归归纳思想如下:

(1)首先,只有一个盘子的时候,把A上的盘子1移到c上就行了。

(2)当A上有两块板时,需要将A上的1号板移到B上,然后将A上的2号板移到C上,再将B上的1号板移到C上。

(3)当A上有三块板时,需要将A上的1和2号板移动到B上(借助C),然后将A上的3号板移动到C上,再将B上的板移动到C上(借助A)。

(...)等等。

(N)当A上有N块板,A上的N-1块板需要移到B上(借助C),那么A上的第N块板需要移到C上,然后B上的板需要移到C上(借助A)。

起源

河内塔的问题是一个起源于古代印度传说的教育玩具。梵天创造世界的时候,做了三根钻石柱子,64个黄金圆盘从下到上按大小顺序叠放在一根柱子上。

梵天命令梵天从下到上按大小顺序重新排列另一根柱子上的圆盘。还规定小盘不能放大盘,一次只能在三根柱子之间移动一个盘。