1 回答

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超3個贊
遞歸就是函數(shù)自己調(diào)用自己。可以把遞歸看成是一個盒子,先放進(jìn)去的數(shù)據(jù)在下面,要后取出來的。比如你這個程序中 l 的值為5, 求lzhzuibang(5)。
lzhzuibang(5)=lzhzuibang(4)+2
lzhzuibang(4)=lzhzuibang(3)+2
lzhzuibang(3)=lzhzuibang(2)+2
lzhzuibang(2)=lzhuzuibang(1)+2
lzhzuibang(1)=10,
lzhzuibang(1)是最后放進(jìn)去的,所以最先取出來,并且值返回都上一步遞歸,這樣就依次算出上面的值,最終得到lzhuzuibang(5)的值。
要注意的是,在遞歸結(jié)束之前,也就是lzhzuibang(5)求出之前,lzhzuibang(1)到lzhzuibang(4)都是作為臨時變量存放于內(nèi)存當(dāng)中等待遞歸的返回值,因此會占用一定的內(nèi)存空間。如果遞歸的次數(shù)很大,比如你把5改成50000或更大,那么就會出現(xiàn)內(nèi)存的溢出。
你的問題“sum=(lzhzuibang(l-1))+2里的l-1什么時候是加號什么時候是減號”,我不是很明白什么意思?
- 1 回答
- 0 關(guān)注
- 1692 瀏覽
添加回答
舉報