2 回答

TA貢獻(xiàn)165條經(jīng)驗(yàn) 獲得超90個(gè)贊
這個(gè)就是 函數(shù)的參數(shù)方面的問題了。?
最著名的形式參數(shù)(形參),實(shí)際參數(shù)(實(shí)參)的區(qū)別:
def?func?(a,?b): ????print(a,?b) ????func1(b,?a) ???? def?func1(x,?y): ????print?(x,?y) ???? ##?定義了兩個(gè)函數(shù)?func?和func1?其中,?定義是所用的?a,?b,?x,?y?都是形參,?而調(diào)用時(shí)傳給函數(shù)的參數(shù)就是?實(shí)參了 func(1,?2) ##?輸出 1?2 2?1 ##?解釋,?調(diào)用?func(1,?2)?這個(gè)1?和?2??就是實(shí)參。?同樣?在?func()?函數(shù)中,我們調(diào)用了?func1(b,a)?這里面的?b?和 ##?a?就是實(shí)參了?在這里是?2?和1?。
嗯, 形參和實(shí)參的 轉(zhuǎn)換, 基本就是在 函數(shù)定義的內(nèi)部 再次調(diào)用函數(shù)(如果是其本身 被稱為遞歸調(diào)用)的時(shí)候。
上面的 漢諾塔遞歸 就是這種 每次調(diào)用 都在做 形參和實(shí)參的轉(zhuǎn)換。

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超1個(gè)贊
這是一種遞歸調(diào)用,move(n-1,?a,?c,?b)是為了將之前的n-1個(gè)先放到b上,當(dāng)這部完成后,move(n-1,?b,?a,?c)則就是將之前已經(jīng)放到b上的那n-1個(gè)再放回到c上,這里的abc都是形式參數(shù),abc順序的轉(zhuǎn)換就是將不同的值傳入遞歸函數(shù)中使其能夠執(zhí)行轉(zhuǎn)換,樓主可以先從3個(gè)的漢諾塔開始,按程序一點(diǎn)點(diǎn)的走,更便于理解遞歸
添加回答
舉報(bào)