# 汉诺塔思想笔记 # 认识汉诺塔的目标:把A柱子上的N个盘子移动到C柱子 # 递归的思想就是把这个目标分解成三个子目标 # 子目标1:将前n-1个盘子从a移动到b上 # 子目标2:将最底下的最后一个盘子从a移动到c上 # 子目标3:将b上的n-1个盘子移动到c上 # 然后每个子目标又是一次独立的汉诺塔游戏,也就可以继续分解目标直到N为1 def move(n, a, b, c): if n == 1: print(a, '-->', c) else: move(n-1, a, c, b)# 子目标1 move(1, a, b, c)# 子目标2 move(n-1, b, a, c)# 子目标3 n = input('enter the number:') move(int(n), 'A', 'B', 'C')
看懂了,谢谢
虽然看明白了,但还是有点晕,为什么要那么多参数呢,只要n不行么?
可以补充一句,子目标2是分割线,把子目标1和子目标3切成了盘子个数为n-1的两个阉割版汉诺塔游戏。。。 整这么多参数应该是为了更好理解吧。
Sign in to make a reply
Geek_MrHowe