借助递归解决汉诺塔问题非常方便:
解决汉诺塔根据盘子的个数可将分为两种
一、当盘子(n)=1时,我们直接从A移动到B;
二、当盘子(n)>=2时,我们分为三步:
①将A最上边的小的先移动到B
②再将A上最大的盘子移动到C
③然后将B上的盘子移动到C
当盘子(n)=3时,我们也将问题分为三步:
①将(n-1)个盘子从A上借助C移动到B上
②再将A上的最大的盘子移动到C上
③最后再将(n-1)个盘子从B借助A移动到B上
所以我们将函数定义为:
def hannuota(n,a,b,c):
这样的函数意思就是将n个盘子从A借助B移动到C上
然后我们在调用的时候再根据具体的步骤进行变换