汉诺塔(Tower of Hanoi),又称河内塔,是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
假设一共有n个圆盘。
有三根柱子a,b,c,此时他们的状态分别为起始柱,辅助柱,目标柱。
当n==1时很简单,只需要将a中的圆盘放到c中即可。
当n!=1时,如下所示
hanio(n个圆盘,起始柱,辅助柱,目标柱)
hanio(n,'a','b','c');
由于大圆盘不能放到小圆盘上面,所以最大的圆盘n必须留到最后,先放入c中,因此需要把n-1个圆