关于汉诺塔用递归函数,一遍有一遍的看了很多教程,对于a,b,c的顺序,却始终不能理解。
看了这篇文章后,明白很多。链接:https://blog.csdn.net/weixin_42365252/article/details/83787897
汉诺塔问题解决总共有3步:
1. 将n-1个盘子从a移到b;
2. 将最底部的盘子从a移到c;
3. 将前n-1个盘子从b移到c.
最后我写的代码:
def move(n, a, b, c): if n == 1: print(a, '-->', c) else: move(n-1,a,c,b) #将前n-1个盘子从a移到b move(1,a,b,c) #将最底部的盘子从a移到c; move(n-1,b,a,c) #将前n-1个盘子从b移到c. move(1,a,b,c) 这一行代码,也可以用print (a,"--->",c)来代替,意思是将最底下的一个盘子从a移到c上 方便理解a,b,c顺序: 函数move(n, a, b, c)的意思是把n个盘子从a柱,借b柱,移动到c柱。 那么move(n-1, a, c, b)就是把n-1个盘子从a柱,借c柱,移动到b柱。 测试: print(move(3,'A','B','C'))