C語言 之遞迴函式

2021-07-17 04:18:32 字數 1026 閱讀 3234

今天來總結一下關於遞迴函式的使用方面的問題。

遞迴函式就是在函式使用的時候自己呼叫自己,層層呼叫,來實現你想要的功能。

有兩個最常用的例子,我們來寫一下。

(1)計算階乘

#include

int factorial(int n); // 函式宣告(階乘)

int main(void)

int a = 5;

printf("%d的階乘是:%d.\n", a, factorial(a));

return 0;

int factorial(int n)

if (n < 1)

printf("error.\n");

return -1;

if (n == 1)

return 1;

else

return (n * factorial(n-1));

(2)斐波那契函式

#include

int fibonacci(int n); // 函式宣告(斐波那契函式)

int fibonacci(int n)  

if (n == 0) return    0;  

if (n == 1) return    1;  

return  fibonacci(n - 1) + fibonacci(n - 2);  

int main(void)  

int a;

printf("%d的斐波那契函式值為%d",a,fibonacci(a));

return   0;  

第二個可能不太容易看明白,我們來分析一下

首先,這個假設乙個數為n , 

第一次遞迴,f(n)=f(n-1)+f(n-2)

第二次遞迴分為兩個部分,

f(n-1)=f(n-2)+f(n-3) f(n-2)=f(n-3)+f(n-4)

第三次遞迴分為四個部分……一直遞迴到0和1為止。

所以n==0或者n==1的時候返回乙個常數很重要,要不然就會一直遞迴下去,直到觸發段錯誤。 

C語言之函式

1.前導程式 2.函式概述 1 列印乙個信頭 2 include3 include 4 define name gigathink,inc.5 define address 101 megabuck plaza 6 define place megapolis,ca 94904 7 define w...

C語言之函式

函式是c語言學習中乙個重要的部分,可以說在開始學習c語言的時候懂得了函式的相關知識對學習c語言很重要特別是有信心上的幫助。下面寫乙個函式的例子,include int foo int num1,int num2 int main 在主函式中有三個臨時變數a,b,c。a和b已知,c被賦予以a和b為引數...

C語言之函式

函式基本格式 函式型別 函式名 定義形參 函式主體 函式的呼叫過程 1,通過函式名找到函式的入口位址 2,給形參分配空間 3,將實參的值傳遞給形參 4,執行函式體 5,返回函式值 void 函式五返回值 6,釋放空間 函式的引數傳遞 簡單變數作為函式引數 1 include 2 3 int main...