程式設計中的遞迴(C語言為例)
首先看一段程式碼:
#include<stdio.h>
int f(int n)
{
if (n == 0)
return 0;
else
return f(n - 1) + n;
}
int main()
{
printf("%d", f(5));
return 0;
}
在此程式中定義了一個函式f,此函式的作用呢是一個簡單的判斷,當n等於0的時候則返回0,如果不為0的時候呢則返回f(n - 1) + n。大部分人對遞迴難理解可能就是在於這裡使用了一個函式,那就是自己。
這下面的f(n - 1) + n實則是呼叫了一個函式f將f傳參運算之後返回的值就是作為最終的結果做運算,簡單來說就是我在f裡呼叫f,這不難理解吧,函式之間可以相互呼叫,但函式本身也可以呼叫自己。
程式解析:
這個函式首先呼叫f傳入引數5,此時n不等於0,所以執行f(n-1)+n,由於此時的n我們傳過來是5,則f(5-1)+5,此時繼續計算f的值,現在有呼叫了一個f並傳入了一個值那就是4,因為4也不等於0,所以繼續執行f(4-1)+4,依次推算,直到n等於0時遞迴演算法方可結束,當最後執行完0之後,會依次返回值給上一次呼叫的函式。
結果15
相關文章
- c語言_遞迴C語言遞迴
- C語言遞迴之母牛的故事C語言遞迴
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- C#語言函式遞迴C#函式遞迴
- 函數語言程式設計之尾呼叫和尾遞迴函數程式設計遞迴
- C語言趣味程式設計100例pdfC語言程式設計
- C語言程式設計C語言程式設計
- Java語言程式設計—迴圈語句Java程式設計
- 發現C語言遞迴深度有限制C語言遞迴
- C語言用遞迴方法求解階乘C語言遞迴
- C語言程式設計原理C語言程式設計
- c語言程式設計題C語言程式設計
- MySQL的C語言程式設計(一)MySqlC語言程式設計
- 遞迴程式的漸近分析(以分治為例)遞迴
- C#中的函數語言程式設計:序言(一)C#函數程式設計
- 奇怪的C語言——C51程式設計C語言注意事項C語言程式設計
- C語言MySQL程式設計示例C語言MySql程式設計
- C 語言程式設計(unix) (轉)程式設計
- 結對程式設計(c語言)程式設計C語言
- C++的函數語言程式設計C++函數程式設計
- Python使用遞迴法和函數語言程式設計計算整數各位之和Python遞迴函數程式設計
- C語言:迴文數計算C語言
- C語言 遞迴實現二叉排序樹的插入C語言遞迴排序
- 基於C語言用遞迴思想實現斐波那契數列的函式設計C語言遞迴函式
- C 語言程式設計利器之 CLion程式設計
- C#函數語言程式設計C#函數程式設計
- C語言程式設計基本規範C語言程式設計
- 1223 遞迴下降語法分析程式設計遞迴語法分析程式設計
- C++ 遞迴與物件導向程式設計基礎C++遞迴物件程式設計
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- C語言高效程式設計的幾招(轉)C語言程式設計
- 單向迴圈連結串列介面設計(C語言)C語言
- C++物件導向程式設計——遞迴實現字串的反序C++物件程式設計遞迴字串
- JavaScript中的函數語言程式設計JavaScript函數程式設計
- JavaScript 中的函數語言程式設計JavaScript函數程式設計
- GO語言————6.6 遞迴函式Go遞迴函式
- 遞迴是如何進入程式設計的?遞迴程式設計
- 遞迴中Return例項分析遞迴