longzhou520 发表于 2020-12-23 21:53:33

参数是怎么不断交换的

def han(n,x,y,z):
    if n==1:
      print(x,'-->',z)
    else:
      han(n-1,x,z,y)
      print(x,'-->',z)
      han(n-1,y,x,z)


n=int(input('请输入汉诺塔的层数:'))
han(n,'X','Y','Z')

suchocolate 发表于 2020-12-24 22:24:37

pycharm设断点按步运行就都看到了。

tryhi 发表于 2020-12-25 10:47:56

def hanoi(n, a, b, c):
    if n == 1:
      print(a, '-->', c)
    else:
      hanoi(n - 1, a, c, b)
      print(a, '-->', c)
      hanoi(n - 1, b, a, c)
hanoi(6, 'A', 'B', 'C')

汉诺塔这个算法好经典
页: [1]
查看完整版本: 参数是怎么不断交换的