當前位置:首頁 » 編程語言 » 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-09-24 14:19:22 瀏覽:513
前台加密後台解密 發布:2025-09-24 14:10:29 瀏覽:89
什麼id密碼可以下載安卓 發布:2025-09-24 13:36:54 瀏覽:623
win7如何登陸ftp 發布:2025-09-24 13:01:29 瀏覽:174
海信電視怎麼查看配置 發布:2025-09-24 13:00:31 瀏覽:783
android開發從零開始 發布:2025-09-24 12:51:28 瀏覽:113
為什麼安卓不支持群折疊 發布:2025-09-24 12:03:53 瀏覽:229
開放上網如何設密碼 發布:2025-09-24 11:31:08 瀏覽:566
編譯原理語義分析實驗報告 發布:2025-09-24 11:24:18 瀏覽:759
手機電腦文件夾同步 發布:2025-09-24 11:17:13 瀏覽:403