一.遞迴的兩個必要條件:
1.存在限制條件,當滿足這個限制條件的時候,遞迴便不再繼續。
2.每次遞迴呼叫之後越來越接近這個限制條件。
二.迭代與迴圈的關係:迭代》=迴圈
練習:求n的階乘(遞迴)
筆記:如果n<=1,階乘為1;如果n>1,階乘為n*(n-1)!
#include
intfac
(int m)
else
}int
main()
練習:求第n個斐波那契數。(不考慮溢位)(遞迴:效率低)
規律:前2個數相加等於第3個數
筆記:如果n<=2,第m個斐波那契數為1;如果n>2,第m個斐波那契數為fib(n-1)+fib(n-2)
#include
intfib
(int m)
//如果m>2,第m個斐波那契數為fib(n-1)+fib(n-2)
else
}int
main()
練習:求第n個斐波那契數。(不考慮溢位)(非遞迴:效率高)
#include
intfib
(int m)
return c;
}int
main()
遞迴與迭代
遞迴與迭代都是基於控制結構 迭代用重複結構,而遞迴用選擇結構。遞迴與迭代都涉及重複 迭代顯式使用重複結構,而遞迴通過重複函式呼叫實現重複。遞迴與迭代都涉及終止測試 迭代在迴圈條件失敗時終止,遞迴在遇到基本情況時終止。使用計數器控制重複的迭代和遞迴都逐漸到達終止點 迭代一直修改計數器,直到計數器值使迴...
遞迴與迭代
1 遞迴 當函式用自身來定義時就稱為是遞迴 recursive 的。遞迴必須滿足四個基本法則 1 基本情形 必須給出基準情況,不用遞迴就能求出,用於終止遞迴運算 2 不斷推進 對於那些要被遞迴求解的情形,遞迴呼叫必須能夠朝著乙個基準情形推進 3 設計法則 假設所有的遞迴呼叫都能執行 4 合成效益法則...
遞迴與迭代
遞迴是什麼?簡單來說,就是函式自己調自己的一種方法。通常可以把乙個大型複雜的問題轉化為乙個與原問題相似的規模較小的問題來求解。遞迴的兩個必要條件 以下用幾個例項來說明 題目一 接受乙個無符號整數,把它轉化為字元並列印它。void print int n printf d n 10 int main ...