程式設計中的遞迴(C語言為例)

安全獅發表於2020-11-25

首先看一段程式碼:

#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

相關文章