PHP遞迴演算法簡單化

來源:互聯網
上載者:User
遞迴函式為自調用函數,在函數體內直接或直接自個調用自個,但需求設定自調用的條件,若滿意條件,則調用函數自身,若不滿意則停止本函數的自調用,然後把目前流程的主控權交回給上一層函數來履行,也許這麼給我們解說,仍是很難理解。

例如一下代碼:

function test ($n){    echo $n."  ";    if($n>0){        test($n-1);    }else{        echo "";    }    echo $n."  "}test(2)

這個比如終究的輸出結果是2 1 0<–>0 1 2

我解說下 為何輸出是這麼的

第一步,履行test(2),echo 2,然後由於2>0,履行test(1), 後邊還有沒來得及履行的echo 2
第二步,履行test(1),echo 1,然後由於1>0,履行test(0),相同後邊還有沒來得及履行的 echo 1
第三步,履行test(0),echo 0,履行test(0),echo 0, 此刻0>0的條件不滿意,不在履行test()函數,而是echo “”,並且履行後邊的 echo 0

此刻函數現已不再調用自個,開端將流程的主控權交回給上一層函數來履行,也即是開端履行剛剛一切test()函數沒來得及輸出的最終一個echo,0的一層是1也即是輸出1 1的上一層是2 也即是輸出2 2沒有山一層 所以呢 輸出的內容即是2 1 0<–>0 1 2

相關閱讀:

php遞迴演算法

php遞迴演算法:php遞迴演算法 PHP樹-不需要遞迴:/*** 建立父節點樹形數組* 參數* $ar 數組......

php遞迴演算法 PHP面試常用演算法

php遞迴演算法:php遞迴演算法 PHP面試常用演算法......

php遞迴演算法 基於PHP紅包的演算法探討

php遞迴演算法:php遞迴演算法 基於PHP紅包的演算法探討:突發奇想給校友群發了紅包,我設定紅包總額為10元,支援28個人隨機領取。......

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.