课程
/后端开发
/Python
/初识Python
C --> B C-->A是怎么来的明明没有move(n-1,c,b,a) 为什么能得到C-->
2016-12-02
源自:初识Python 7-5
正在回答
楼主,我解决了。
def move(n,a,b,c):#为了解释,我叫a为位置1,b为位置2,c为位置3if n == 1:print a,'-->',creturnmove(n-1,a,c,b)#这一句实现了整个过程中的全部2,3位置互换print a,'-->'cmove(n-1,b,a,c)#这一句实现了整个过程中的全部1,2位置互换move(4,'A','B','C')#所以总的来看,C是可以实现先和B互换再跟A互换的
慕粉2014408783 提问者
神爱鬻 回复 慕粉2014408783 提问者
楼主不妨这样理解:递归实现的过程中“源柱,过度柱,目标柱”是改变的。
同问,楼主解决了吗?
这是应为具有递归关系,你想想,通过上面的代码,b的位置可以到最后的时候移动到a的位置上,而中间的函数move(n-1,a,c,b),此时c的位置相当于之前b的位置,那么在其函数内部递归时,可以像之前b一样走到a的位置上,就形成了C-->
xiyangwugang 回复 慕粉2014408783 提问者
慕粉2014408783 提问者 回复 xiyangwugang
能上代码看看?
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序