C 語言學習記錄 8 函式的遞迴呼叫

2021-10-23 20:58:48 字數 708 閱讀 3838

函式的遞迴呼叫將以計算乙個數的階乘為例。

#include

using

namespace std;

unsigned

func

(unsigned n)

intmain()

以上的過程基於階乘的性質:n!=

n∗(n

−1)!

n! = n*(n-1)!

n!=n∗(

n−1)

!,藉此進行函式的遞迴呼叫。

遞迴呼叫顧名思義就是在使用該函式的同時直接或間接地再次使用該函式本身以此達到乙個迭代的效果。

在遞迴呼叫的過程中又發生了什麼?

以n=5為例:

①對階乘函式進行定義,使區域性變數成為在正整數情況下使用的乙個函式

②定義正整數變數f

③判斷n的值是否為零,為零則f=1且函式結束迴圈

④若n的值不為0,則令n=(

n−1)

!∗

nn=(n-1)!*n

n=(n−1

)!∗n

⑤此過程隨n值的縮小一直進行下去,func(4)=4func(3),func(3)=3func(2),func(2)=2*func(1),func(1)=1

這就是乙個遞迴的過程,在邏輯語言的呈現上是與我們平時的計算方式相反的

⑥當n=0時函式值為假,後終止迴圈

C 語言學習記錄 6 函式的定義和呼叫

c 中有很多內建函式,但是仍然有一些功能需要我們自己寫函式並在後續的程式中使用。下面以乙個計算乘方運算的程式為例。include using namespace std double power double x,int n intmain 在主函式上面的一段 就是定義新函式的過程,在這裡將x定義為...

C語言學習筆記 遞迴函式

在本章遞迴函式的學習過程中,我們將舉出幾個典型的遞迴例子,以及三種理解遞迴執行的方法。include void fun int n int main 這就是乙個簡單的遞迴函式,要注意的是在函式內部再次呼叫的時候引數變成了n 1,這樣的目的是使函式獲得迴圈控制變數的變化,以及迴圈停止的條件。void ...

C語言學習筆記(8)函式

函式主要是用於將解決複雜的程式設計問題分解為數個可以分開進行解決的小問題,通過函式分裝,最後在拼連在一起。有利於多人協作開發。函式同樣需要先宣告後呼叫,宣告符號為 void,且函式後一般帶有 在原程式中需要使用相應語句就只需要直接呼叫函式即可。例 include void main void pri...