今天來總結一下關於遞迴函式的使用方面的問題。
遞迴函式就是在函式使用的時候自己呼叫自己,層層呼叫,來實現你想要的功能。
有兩個最常用的例子,我們來寫一下。
(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...