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

为什么答案中只有print a,'-->',c的句子

为什么答案中只有print a,'-->',c的句子,执行完代码后的答案却有b-->a,c-->a,a-->b,这样的话写print  a,'-->',c有什么作用?

还有答案中有c-->a的答案 这我就有点不能理解了,最后的目的是要到c的,怎么还会有c-->a的步骤??

def move(n, a, b, c):
    if n == 1:
        print a,'-->',c
        return
    move(n-1, a, c, b)
    print a,'-->',c
    move (n-1, b, a, c)
move(4, 'A', 'B', 'C')


https://img1.sycdn.imooc.com//5ac2f2d200015b6210730503.jpg

正在回答

1 回答

首先:a,b,c 只是代表一个参数

比如:move(a,b,c)代表a=‘A’,b=‘B’,c=‘C’

a->c 输出为  A->C

参数位置变化后,move(a,c,b)代表a=‘A’,c=‘B’,c=‘B’

a->c 输出为  A->B


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

张二狗神 提问者

参数位置变化后,move(a,c,b)代表a=‘A’,c=‘B’,c=‘B’ 两个c = 'b'是什么意思
2018-04-03 回复 有任何疑惑可以回复我~
#2

qq_羽辞_0 回复 张二狗神 提问者

不好意思,打错了,参数位置变化后,move(a,c,b)代表a=‘A’,b=‘C’,c=‘B’
2018-04-03 回复 有任何疑惑可以回复我~
#3

qq_羽辞_0

后面说到,最后的目的是要到c的,怎么还会有c-->a的步骤 这个就是算法的问题了,只要玩过汉罗塔都知道是什么回事,建议你去查一下汉罗塔,很简单的
2018-04-03 回复 有任何疑惑可以回复我~
#4

张二狗神 提问者 回复 qq_羽辞_0

那代码里的两个print 应该是代表着输出A-->C和A-->B两个结果啊,那为什么结果里还有其他的C-->A之类的
2018-04-03 回复 有任何疑惑可以回复我~
#5

张二狗神 提问者 回复 qq_羽辞_0

好的 玩了一下 确实有点明白了 最后还是要先挪回来的!
2018-04-03 回复 有任何疑惑可以回复我~
#6

张二狗神 提问者

非常感谢!
2018-04-03 回复 有任何疑惑可以回复我~
#7

张二狗神 提问者

道理懂了 但是还是有个问题,我的两个print 应该是代表着输出A-->C和A-->B两个结果,那为什么move (n-1, b, a, c)的时候不用再加一个print ,代表着输出B-->C
2018-04-03 回复 有任何疑惑可以回复我~
查看4条回复

举报

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

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

进入课程

为什么答案中只有print a,'-->',c的句子

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