當前位置:首頁 » 編程語言 » 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;
};
};

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

熱點內容
knn演算法java 發布:2025-05-03 00:24:10 瀏覽:761
小米論壇源碼 發布:2025-05-03 00:19:19 瀏覽:763
一夢江湖腳本伐木是砍竹子嗎 發布:2025-05-03 00:16:41 瀏覽:221
天狗網密碼多少 發布:2025-05-03 00:10:38 瀏覽:643
簡訊伺服器怎麼查 發布:2025-05-03 00:08:05 瀏覽:202
綠豆腳本吃雞 發布:2025-05-02 23:44:50 瀏覽:718
車天窗是什麼配置 發布:2025-05-02 23:37:47 瀏覽:912
區域網視頻點播伺服器搭建 發布:2025-05-02 23:18:28 瀏覽:713
電腦如何清理安卓手機 發布:2025-05-02 23:06:38 瀏覽:722
linuxrar解壓縮 發布:2025-05-02 23:04:59 瀏覽:392