为了账号安全,请及时绑定邮箱和手机立即绑定

不知道错哪了

def move(n, a, b, c):

    def fact(n):

        t1=='a-->b'

        t2=='b-->c'

        t3=='a-->c'

        

        if n==1:

            print t1

        elif n>1:

            print t1

            print (n-1)*t2

            print (n-1)*t3


move(4, 'A', 'B', 'C')


正在回答

4 回答

您理解错啦,a,b,c是形参,不是实参,我参考了知乎上的一位答主对于汉诺塔递归的解释https://www.zhihu.com/question/24385418

附上我的代码,供您参考

def move(n, a, b, c):

    if n <= 0 :

        return "the number must larger than zero !"

    elif n == 1 :

        print a, '-->',  c

        return 

    else :

        move(n-1, a, c, b)

        print a, '-->', c

        move(n-1, b, a, c)


move(4, 'A', 'B', 'C')


0 回复 有任何疑惑可以回复我~

def move(n,a,b,c):
if n>1:
return (“a—>b”,“b—>c”,“a—>c”)
elif n>0:
return (“a—>c”)
else:
return (“error ”)
print (move (4,“A”,“B”,“C”))

0 回复 有任何疑惑可以回复我~

定义的第二个函数没有意义,删掉;t1t2t3应该是赋值,要用单等号。改完再调整一下空格就可以有结果了,但是这个结果和思路都是错的。这道题的思路不是这么简单的一个一个挪,建议去查一下汉诺塔问题定义,有顺序要求的。参考别的大佬的代码,应该可以看懂

1 回复 有任何疑惑可以回复我~

这段代码真是天马行空,看得人眼花缭乱,头晕目眩

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

不知道错哪了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信