為啥這個(gè)只輸出a-->b
def move(n, a, b, c):
? ? if n == 1:
? ? ? ? print a,'-->',c
? ? ? ? return none
? ? else:
? ? ? ? move(n-1,a,c,b)
? ? ? ? move(1,a,b,c)
? ? ? ? move(n-1,b,a,c)
move(4, 'a', 'b', 'c')
def move(n, a, b, c):
? ? if n == 1:
? ? ? ? print a,'-->',c
? ? ? ? return none
? ? else:
? ? ? ? move(n-1,a,c,b)
? ? ? ? move(1,a,b,c)
? ? ? ? move(n-1,b,a,c)
move(4, 'a', 'b', 'c')
2016-08-02
舉報(bào)
2016-08-02
去掉return none,一旦執(zhí)行rerurn,程序立馬停止。
因?yàn)闊o(wú)論如何遞歸,最底層的函數(shù)必定最先輸出n==1時(shí)的情況,之后就return了,停止運(yùn)行。
2016-08-02
個(gè)人感覺(jué),因?yàn)閚=4,開(kāi)始else遞歸,賦值之后a=a b=c c=b 然后n==1的時(shí)候a-->c的時(shí)候就輸出a-->b了 然后return,函數(shù)結(jié)束
2016-08-02
n=4時(shí)直接運(yùn)行else else else 三次后n=1,這時(shí)候形參a,c,b對(duì)應(yīng)實(shí)參a,b,c 所以輸出a-->b一次后 returne none 結(jié)束了。