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

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

熱點內容
php辦公系統 發布:2025-07-19 03:06:35 瀏覽:900
奧德賽買什麼配置出去改裝 發布:2025-07-19 02:53:18 瀏覽:42
請與網路管理員聯系請求訪問許可權 發布:2025-07-19 02:37:34 瀏覽:189
ipad上b站緩存視頻怎麼下載 發布:2025-07-19 02:32:17 瀏覽:844
phpcgi與phpfpm 發布:2025-07-19 02:05:19 瀏覽:527
捷達方向機安全登錄密碼是多少 發布:2025-07-19 00:57:37 瀏覽:694
夜魔迅雷下載ftp 發布:2025-07-19 00:39:29 瀏覽:99
增值稅票安全接入伺服器地址 發布:2025-07-19 00:20:45 瀏覽:486
solidworkspcb伺服器地址 發布:2025-07-18 22:50:35 瀏覽:823
怎麼在堆疊交換機里配置vlan 發布:2025-07-18 22:42:35 瀏覽:630