程式設計中的遞迴(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語言趣味程式設計100例pdfC語言程式設計
- C語言遞迴之母牛的故事C語言遞迴
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- C#語言函式遞迴C#函式遞迴
- 函數語言程式設計之尾呼叫和尾遞迴函數程式設計遞迴
- Java語言程式設計—迴圈語句Java程式設計
- c語言程式設計題C語言程式設計
- C#中的函數語言程式設計:序言(一)C#函數程式設計
- 結對程式設計(c語言)程式設計C語言
- C++的函數語言程式設計C++函數程式設計
- C 語言程式設計利器之 CLion程式設計
- C語言:迴文數計算C語言
- 20201022-成信大-C語言程式設計-20201學期《C語言程式設計B》C-trainingExercises26C語言程式設計AI
- C語言 遞迴實現二叉排序樹的插入C語言遞迴排序
- 基於C語言用遞迴思想實現斐波那契數列的函式設計C語言遞迴函式
- C語言 第一章 程式設計和C語言 例1.1 要求在螢幕上輸出 This is a C program.C語言程式設計
- C++ 遞迴與物件導向程式設計基礎C++遞迴物件程式設計
- C++物件導向程式設計——遞迴實現字串的反序C++物件程式設計遞迴字串
- 單向迴圈連結串列介面設計(C語言)C語言
- C語言+圖形程式設計——自制象棋C語言程式設計
- C語言程式設計題T1C語言程式設計
- C語言指標應用程式設計C語言指標程式設計
- C 語言程式設計習慣總結程式設計
- C語言程式設計B作業04C語言程式設計
- 偽隨機數C語言程式設計隨機C語言程式設計
- C語言程式設計-漢字點陣C語言程式設計
- 初步瞭解C語言Windows程式設計C語言Windows程式設計
- JavaScript中的函數語言程式設計JavaScript函數程式設計
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- 使用C語言程式設計的7個步驟C語言程式設計
- 何為程式語言?為什麼要學C語言?C語言
- C語言是程式設計小白的噩夢,WEB開發成為轉行程式設計師的福音!C語言Web行程程式設計師
- c語言程式的執行過程(以輸出hello,world為例)C語言
- 實驗2C語言分支與迴圈基礎應用程式設計C語言程式設計
- 實驗2_C語言分支與迴圈基礎應用程式設計C語言程式設計
- 實驗2 c語言分支與迴圈基礎應用程式設計1C語言程式設計
- 實驗2 C語言分支與迴圈基礎應用程式設計-1C語言程式設計