學習筆記 遞迴

2021-08-13 16:31:28 字數 1140 閱讀 3403

ps:前幾天在藍橋杯選拔的時候碰到一題用遞迴的題目,但因為太久沒回顧都忘了,所以在這裡用自己能理解的話簡單記錄一下。

int f(int x)

確定關係,必定存在從某一項開始,前一項和後一項之間有存在一種關係;

按照這個關係,把所有項遍歷確定關係。

(2)「遞推」

確定目標(所求的點)後,採用 遞推 的方法 得到目標點。

注意

遞迴過程不是無限制的,必須有乙個結束遞迴過程的條件。

例子分析

五個人,第五個比第四個大兩歲,第四個比第三個大兩歲,第三個比第二個大兩歲,第二個比第乙個大兩歲,第乙個十歲。

關係:    age(5)=age(4)+2

age(4)=

age(3)+2

age(3)=

age(2)+2

age(2)=

age(1)+2

age(1)=10

age(n)=10 (n=1)

age(n)=age(n-1)+2 (n>1)

則可以看出目標邊界為5,確定的出發點為1。

從1 遞推 到5可根據關係確定所有人的值。

#includeusing namespace std;

int main()

{ int age(int);

int n=5;

cout<<"no.5 number is:"<

在**中,開始是age(5),函式被呼叫了5次,age(5),age(4),age(3),age(2),age(1),其中age(5)是main呼叫的,其他是在age中被呼叫,即遞迴了四次。

在某一次呼叫age函式的時候不是立即得到age(n)的值,而是一次又一次地進行遞迴呼叫,到age(1)時才有確定的值,再往回遞推出age(2),age(3),age(4),age(5)。

注意  age(1)的值是確定的,當n=1時,執行 「c=10」 ,即不再呼叫age函式,遞迴呼叫結束。再把10作為age(1)的值返回age函式重新遞推。

C 遞迴學習筆記

這篇筆記是對慕課上郭煒老師的c 課程自己的總結,方便日後複習 重點 將問題分解為規模更小的子問題解決 如 1.爬樓梯問題,乙個人每次走1級或2級,輸入樓梯級數求不同的走法數 n級台階走法 先走一級後,n 1級的台階走法 先走兩級後,n 2級台階走法f n f n 1 f n 2 完整 include...

演算法學習筆記 遞迴

漢諾塔問題 有種說法我覺得很好,所謂遞迴,就是利用大道至簡的思想,把乙個大的複雜的問題層層轉換為乙個小的和原問題相似的問題來求解的這樣一種策略。優點缺點 遞迴給人的感覺是驚豔,它往往能給我們帶來非常簡潔非常直觀的 形勢,從而使我們的編碼大大簡化。效率往往很低,費時和費記憶體空間。在遞迴呼叫的過程當中...

python學習筆記一 遞迴

漢諾塔 def hannoi n,x,y,z if n 1 print x,z else hannoi n 1,x,z,y 將n 1個盤子從x移動到y print x,z 將x中最後乙個盤子移動到z hannoi n 1,y,x,z 將n 1個盤子從y移動到z n int input 請輸入漢諾塔層...