自己拿纸推到第二步不知道怎么来的了 求大神帮忙
递归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')
大神 请问第二个A--C怎么来的啊?
递归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')
大神 请问第二个A--C怎么来的啊?
2017-07-21
def move(n, a, b, c): #解释:定义一个函数(由下面代码的“a, '-->', c”可以看出,该函数的最终目的是要将a柱中的n个盘子移动到c柱中)。
if n==1:
print a,'-->',c #只有一个盘子时,只需将其从a柱移动到c柱,一步到位。
return
move(n-1,a,c,b) #继续定义函数,可以看出,与原始函数相比较,b与c的位置互换了,表示将a柱中的上面n-1个盘子移动到b柱中。
print a,'-->',c #然后一步是,将a柱中最下面那个盘子移动到c柱中。
move (n-1,b,a,c) #接着定义函数,可以看出,与原始函数相比较,a与b的位置互换了,表示将b柱中的n-1个盘子(b柱中总共n-1个盘子)全部移动到c盘中。
move(4, 'A', 'B', 'C') #输出利用‘B’这个中转站将‘A’中的4个元素按顺序替换到'C'中的结果。
举报