QWERRRRR 发表于 2020-12-23 15:38:01

我这个汉诺塔的代码到底错哪了?

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

n=int(input('请输入汉诺塔层数:'))
hanoi(n,'x','y','z')


执行的结果完成不了不了游戏,实在想不出哪错了,求指教

昨非 发表于 2020-12-23 17:34:06

你的参数搞混了
如果要最后搬到z上,应该改成
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')

QWERRRRR 发表于 2020-12-24 07:57:24

昨非 发表于 2020-12-23 17:34
你的参数搞混了
如果要最后搬到z上,应该改成

我是想最后全部移动的Y上,不是Z,这样行不通吗?

昨非 发表于 2020-12-24 10:17:45

QWERRRRR 发表于 2020-12-24 07:57
我是想最后全部移动的Y上,不是Z,这样行不通吗?

直接该参数位置不香吗

QWERRRRR 发表于 2020-12-24 15:27:49

昨非 发表于 2020-12-24 10:17
直接该参数位置不香吗

我这个改了啊,输出的结果完成不了游戏,怎么改?
页: [1]
查看完整版本: 我这个汉诺塔的代码到底错哪了?