當前位置:首頁 » 編程語言 » c語言遞歸調用

c語言遞歸調用

發布時間: 2025-02-27 07:32:50

c語言函數的遞歸調用

遞歸必須滿足兩個條件:1.初始條件;2.遞歸函數.舉個例子,求階乘:有f(1)=1;f(n)=n*f(n-1)(n≥2)現在你可以實現如下:long func(int n)//定義函數
{
long f,s=0;
if(n==1)f=1;
else
{
f=func(n-1)*n; //這里就是一個遞歸的過程,自身調用自身
s=s+f;
}
return s;
} 假設你現在是求3!執行過程就是:f(3)=f(2)*3;然後調用自身:f(2)=f(1)*2;在調用遇到初始條件:f(1)=1;則f(3)=1*2*3=6

Ⅱ 為什麼「C語言既可以嵌套定義又可以遞歸調用」是錯的

C語言可以遞歸調用,但是(函數)不能嵌套定義。

例如:

intfact(intn)
{
if(n==0)
return0;
else
returnn*fact(n-1);
}

圖中的遞歸調用是允許的。

而:

voidfoo()
{
voidbar()
{
//Somecode
}
}

這樣在函數內定義函數是不允許的。


不過結構體是可以嵌套定義的,例如:

structtest{
inta;
structdemo{
charb;
};
};

這樣在結構體內定義結構體,是可以的。

熱點內容
新東方學校網路密碼是什麼 發布:2025-02-27 10:37:56 瀏覽:689
資料庫用戶表 發布:2025-02-27 10:37:53 瀏覽:242
androidstdio 發布:2025-02-27 10:34:04 瀏覽:727
python自動化運維 發布:2025-02-27 10:27:33 瀏覽:81
ng演算法 發布:2025-02-27 10:18:18 瀏覽:671
android判斷文件夾是否存在 發布:2025-02-27 10:18:16 瀏覽:816
萬能雲解壓 發布:2025-02-27 10:17:42 瀏覽:646
qq空間不允許訪問 發布:2025-02-27 10:06:56 瀏覽:459
混合推薦演算法 發布:2025-02-27 09:40:07 瀏覽:176
ipad2存儲器 發布:2025-02-27 09:35:17 瀏覽:428