1. 程式人生 > 實用技巧 >【老九學堂】【C語言進階】遞迴呼叫

【老九學堂】【C語言進階】遞迴呼叫

我們先來了解一下什麼是遞迴?

遞迴(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=老九學堂


徐老師線下全棧就業班開始報名啦~

零基礎開講,8個月,Java全棧學習,終身推薦就業