php遞迴。

來源:互聯網
上載者:User
剛才網上看了php遞迴,又問了問大神,告訴我說遞迴就是調用它本身。沒有聽明白。又在百度上看了漢諾塔問題。倒是知道漢諾塔是咋回事了,但是還是不明白遞迴。望牛人們給個簡單易懂的例子。。。


回複討論(解決方案)

function f($n)  {     $out = -1;   if($n<0)       echo "輸入不能是負數";   else if($n==0||$n==1)       $out=1;   else $out=f($n-1)*$n;     return $out;}echo f(3);

最經典的例子 階乘

function f($n)  {     $out = -1;   if($n<0)       echo "輸入不能是負數";   else if($n==0||$n==1)       $out=1;   else $out=f($n-1)*$n;     return $out;}echo f(3);

最經典的例子 階乘 這個好。。。這個看明白了看來還是iq不夠

f(3)第一次傳給f函數的參數是3 運行到$out=f($n-1)*$n; 時就變了$out=f(3) = f(2)*3;f(2)還沒出結果所以就又調用了一次f函數這次是f(2)參數為2 再次運行到$out=f($n-1)*$n;時變成了$out=f(2) = f(1)*2 ;f(1)運行這個函數的時候就運行了else if($n==0||$n==1)這段代碼 所以f(1) = 1;知道f(1)的結果了就返回之前的$out=f(2) = f(1)*2 = 1*1 =1 ;$out=f(2) = f(1)*2 = 1*2; $out=f(3) = f(2)*3 = 2*3;結果為6

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.