【老九學堂】【C語言進階】遞迴呼叫
阿新 • • 發佈:2020-10-21
我們先來了解一下什麼是遞迴?
遞迴(recursion):即程式呼叫自身的一個程式設計技巧。
首先,遞迴需要滿足以下2個條件:
1)有反覆執行的過程(呼叫自身)
2)有跳出反覆執行過程的條件(遞迴出口)
那遞迴是不是就是萬能的呢?其實不然,遞迴的有優點當然就有缺點!
優點:遞迴的優點是為某些程式設計問題提供了最簡單的解決方案。
缺點:缺點是一些遞迴演算法會快速的消耗計算機的記憶體資源,另外,遞迴不方便閱讀和維護。
接下來,我們用一個例子來說明遞迴的優缺點。
下面我們就來看幾個遞迴例子:
(1)階乘
(2)漢諾塔問題
(3)全排列
從n個不同元素中任取m(m≤n)個元素,按照一定的順序排列起來,叫做從n個不同元素中取出m個元素的一個排列。當m=n時所有的排列情況叫全排列。
如1,2,3三個元素的全排列為:
(4)斐波那契數列
斐波納契數列,又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21、……
這個數列從第三項開始,每一項都等於前兩項之和。
有趣的兔子問題:
一般而言,兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,那麼一年以後可以繁殖多少對兔子?
分析如下:
依次類推可以列出下表:
遇到問題,可加老九君個人QQ:614940318,請備註來自CSDN
老九學堂免費C、C++、Java課程地址:https://study.163.com/courses-search?keyword=老九學堂