迭代與遞迴的小嘗試

2021-06-13 10:18:23 字數 590 閱讀 2558

遞迴:程式呼叫本身,也就是函式自己去呼叫自己

當我們在說乙個過程是遞迴的時候,也就是這個過程在定義的時候直接或者間接的呼叫了該過程的本身。

迭代:根據變數的規則計算得出新的乙個值,也就是a不斷去呼叫b的過程,這和遞迴自己呼叫自己不同。

遞迴中一定有迭代,而迭代中不一定有遞迴。

同時遞迴呼叫會浪費資源,遞迴得越深,越容易引起堆疊的洩漏。也就是能用迭代的函式就利用迭代,少用遞迴函式。

下面是關於階乘的**

//迭代方法

long funa(int p)

return p;

}//遞迴方法

long fun(int p)

同樣在對於斐波那契數列中

//迭代方法

int fib(int n)

return a;

}//遞迴方法

int f2(int n)

在用迭代找關係的時候可以列出f(4),f(5),用數學中的不完全歸納法找出變數的規則,但是要注意係數的問題。也就是應該檢查一下關係式的正確與否。

迭代與遞迴

to iterate is human,to recurse divine.l.peter deutsch 迭代是人,遞迴是神 遞迴 int f1 int n1 迭代 int f2 int n2 return s 看完上邊兩個demo,是不是更不知所云 所以下面進行理論 利用變數的原值推算出變數的乙...

遞迴和迭代 迭代與遞迴

很多程式設計小白都會遇到 迭代 和 遞迴 的問題 包括我自己 大部分同學還是不知道迭代與遞迴的區別。下面我就嘗試用最通俗易懂的模式講解遞迴與迭代的區別。1.迭代 迭代其實很簡單,我們在程式設計中經常用到迭代。比如說 i 1 print i 這個就是乙個迭代,沒想到吧。迭代的意思其實就是在迴圈 現了參...

迭代與遞迴的區別

迭代和遞迴的區別 從 程式設計之美 的角度看,可以借用一句非常經典的話 迭代是人,遞迴是神!來從巨集觀上對二者進行把握。遞迴實際上不斷地深層呼叫函式,直到函式有返回才會逐層的返回,遞迴是用棧機制實現的,每深入一層,都要占去一塊棧資料區域,因此,遞迴涉及到執行時的堆疊開銷 引數必須壓入堆疊儲存,直到該...