c#遞迴理解
阿新 • • 發佈:2018-12-13
什麼是遞迴函式?
任何一個方法既可以呼叫其他方法又可以呼叫自己,而當這個方法呼叫自己時,我們就叫它遞迴函式或者遞迴方法!
說白了,就是呼叫自己。
通常遞迴有兩個特點:
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數列的一種實現方法
總結:方法實現體內再次呼叫方法本身的本質是多個方法的簡寫;
它既可以呼叫其他方法,又可以呼叫自身.
遞迴一定要有出口;