c#遞歸理解


什么是遞歸函數?

任何一個方法既可以調用其他方法又可以調用自己,而當這個方法調用自己時,我們就叫它遞歸函數或者遞歸方法!

說白了,就是調用自己。

通常遞歸有兩個特點:    

1.遞歸方法一直會調用自己直到某些條件滿足,也就是說一定要有出口;

2.遞歸方法會有一些參數,而它會把這些新的參數值傳遞給自己;(自己調自己);

個人理解:

1,需要設定一個邊界,也就是什么時間結束。

2,需要遞歸的邏輯,也就是遞歸的公式

 

舉個例子:

1.階乘

階乘(!)是小於某個數的所有正整數的乘積;

f(n)=n*(n-1)

首先,我們先確認邊界是什么?

其次,我們要知道邏輯是什么?

邊界:當n=1時,他的階乘就是1,也就是結束的時候

邏輯:上面其實已經給出來了 就是f(n)=n*(n-1)

好,那我們現在用程序來實現

 

2.(Fibonacci)斐波拉切數列:

Fibonacci數列是按以下順序排列的數字:

1,1,2,3,5,8,13,21,34,55....

我們不難發現數列的排列規律是:后一個數加上前一個數,以此類推;

然后我們來確認2個點

1,邊界:你可以發現 當n == 0 n ==1 時就可以觸發邊界

2,邏輯:不難看出  Fn=F(n-1)+F(n-2);

下面是計算Fabonacci數列的一種實現方法

總結:方法實現體內再次調用方法本身的本質是多個方法的簡寫;

   它既可以調用其他方法,又可以調用自身.

   遞歸一定要有出口;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM