有沒有老師可以把漢諾塔移動的遞歸函數講以下,具體如下面
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')
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')
2017-03-12
舉報
2017-03-12
有四個方塊要從a挪到c,我們可以分兩部分來看,第一部分是前三塊,第二部分是最后一塊。很顯然,如果只有一塊時,直接從a到c即可。前三塊不能一下從a到c要借助b才能到c。遞歸循環分兩部:1.跳出循環條件,2.循環體。
當n==1時,滿足跳出循環條件,不滿足,繼續循環。前n-1個先從a借助c到b,再從b借助a到c。當n!=1時,函數遞歸一直循環。