1. 程式人生 > >我一定要成為測試開發!

我一定要成為測試開發!

遞迴就可以理解成為問路 A問B,B不知道替A去問C,C不知道替B去問D,D告訴了C,C告訴了B,B告訴了A,這樣就可以理解成為遞迴

def calc(n)#可以理解成為一個死迴圈,一層一層的套
	print(n)
	calc(n)#自己呼叫自己,走到這一步,又開始回到第一步
calc(10)#給calc傳值,一直列印10

所以: 1、遞迴必須有一個明確的結束條件 2、每次進入更深一層遞迴時,問題規模相比上次遞迴都應該有所減少 3、遞迴效率不高,遞迴層次過多會導致boom(棧溢位)(因為函式呼叫是通過棧這種資料結構實現的,每進入一次函式呼叫就會加一層棧,函式返回時就減一次棧,由於棧的大小不是無限的,所以如果使用次數過對會導致棧溢位)