亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP中的遞歸

PHP中的遞歸

PHP
qq_天蝎的尾巴卍_0 2017-01-11 10:42:27
?function abc($num) {? if($num==1) { return 1; } else { ? return $num*abc($num-1); }? }? echo abc(5); ?//結果為 120;?遞歸的代碼流程具體是怎么走的?
查看完整描述

3 回答

已采納
?
KevenHuang

TA貢獻280條經驗 獲得超233個贊

首先說一下函數的運行,函數的運行是在內存中新開一個棧,然后在棧內運行的,而遞歸就是指在函數內部調用自己,當一個函數在函數內部調用自己,它會立即開辟一個棧,然后運行函數,當然它要有一個遞歸點和遞歸出口,否則函數會無論調用造成死循環,遞歸點為在什么時候需要調用自己,遞歸出口為在什么時候不再調用自己,用一個例子來解釋一下遞歸,就是你的朋友張三向你借錢,你又剛好不夠,你又向你的朋友李四借錢,你的朋友李四錢又不夠,李四又向他的朋友王五借錢,王五的錢夠了,把錢交給李四,李四把錢交給你,你再把錢交給張三,這個過程是連續的,只有最后一個把錢湊夠了才能往回走。遞歸大概就是這樣,遞歸是以空間換時間的,所以遞歸是非常耗內存的。
查看完整回答
1 反對 回復 2017-01-11
點擊展開后面5
?
蜂之谷

TA貢獻564條經驗 獲得超863個贊

5*abc(4)

5*4*abc(3)

5*4*3*abc(2)

5*4*3*2*abc(1)

5*4*3*2*1 = 120

查看完整回答
1 反對 回復 2017-01-11
  • 3 回答
  • 1 關注
  • 1780 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號