xu007xu 发表于 2020-4-24 17:21:16

老八秘制 发表于 2020-4-24 17:22:59

def hanoi(n, x, y, z):
    if n == 1:
      print(x, ' --> ', z)
    else:
      hanoi(n-1, x, z, y) # 将前n-1个盘子从x移动到y上
      print(x, ' --> ', z) # 将最底下的最后一个盘子从x移动到z上
      hanoi(n-1, y, x, z) # 将y上的n-1个盘子移动到z上

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

zltzlt 发表于 2020-4-24 19:07:25

把 y-2 改为 y

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


n = int(input('请输入汉诺塔的层数:'))
hanoi(n, 'x', 'y', 'z')
页: [1]
查看完整版本: 25讲课后习题,怎么和老师的效果不一样