我給你舉個(gè)簡(jiǎn)單的例子你就明白了,你可以假設(shè)n=3
創(chuàng)新互聯(lián)主營(yíng)江都網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,APP應(yīng)用開發(fā),江都h5成都微信小程序搭建,江都網(wǎng)站營(yíng)銷推廣歡迎江都等地區(qū)企業(yè)咨詢
然后代入這個(gè)函數(shù),a(3)=a(2)+5;而a(2)=a(1)+5;a(1)=1
所以最后就是a(3)=1+5+5=11…
同理你可以算出a(10)=1+5*9=46
滿意請(qǐng)采納
舉一個(gè)用遞歸調(diào)用函數(shù)求輸入非負(fù)整數(shù)的階乘的例子,如下:
//#include?"stdafx.h"http://If?the?vc++6.0,?with?this?line.
#include?"stdio.h"
int?fact(int?n){
if(n==1?||?n==0)?return?1;
else?return?n*fact(n-1);
}
int?main(void){
int?x;
while(1){
printf("Input?x(int?12=x=0)...\nx=");
if(scanf("%d",x),x=0??x=12)//x12時(shí)會(huì)使結(jié)果溢出
break;
printf("Error,redo:?");
}
printf("%d!?=?%d\n",x,fact(x));
return?0;
}
遞歸就是函數(shù)自己調(diào)用自己的函數(shù)。
其實(shí)遞歸函數(shù)的調(diào)用和其他一般函數(shù)調(diào)用沒有什么區(qū)別,只是在形式上能夠建立循環(huán)的邏輯調(diào)用。
遞歸函數(shù)一定有個(gè)基本要求,就是肯定會(huì)滿足某種條件,不再調(diào)用自身。(否則就無(wú)限遞歸,直到內(nèi)存溢出)。
例如,我們計(jì)算1到100的所有數(shù)相加。
int addRecursion(int curTotle, int a) {
if(a0)
return addRecursion(curTotle+a, a-1);
return curTotle;
}
調(diào)用: int result = addRecursion(0,100);
result 的結(jié)果就是1到100所有數(shù)的總數(shù)。
所謂遞歸,說(shuō)的簡(jiǎn)單點(diǎn),就是函數(shù)自己調(diào)用自己,然后在某個(gè)特定條件下。結(jié)束這種自我調(diào)用。
如果不給予這個(gè)結(jié)束條件,就成了無(wú)限死循環(huán)了。這樣這個(gè)遞歸也就毫無(wú)意義了。
如下面問題
1 1 2 3 5 8 13 21 ........n
分析可以看出, i 表示第幾個(gè)數(shù), n 表示該數(shù)的值
當(dāng)i = 1 時(shí), n = 1;
當(dāng)i = 2 時(shí), n = 1;
當(dāng)i = 3 時(shí) n = i1 + i2;
當(dāng)i = 4 時(shí) n = i2 + i3
所以可以寫個(gè)函數(shù)
int fun(int n) // 這里的n代表第幾個(gè)數(shù)
{
if(1 == n || 2 == n) // 第一個(gè)數(shù)
{
return 1;
}
else
{
return fun(n - 1) + fun(n - 2); // 這里就是自己調(diào)用自己,形成循環(huán)自我調(diào)用。
}
}
注: 以上代碼只是用來(lái)演示遞歸,不包含錯(cuò)誤校驗(yàn)。
在實(shí)際生產(chǎn)過(guò)程中。該代碼不夠健壯。
如此,就完成了遞歸。你就可以求得第n個(gè)數(shù)了。
何時(shí)考慮使用遞歸。
當(dāng)你分析一個(gè)問題的時(shí)候,發(fā)現(xiàn)這個(gè)問題,是一個(gè)自我循環(huán)時(shí),而且這個(gè)自我循環(huán)到一個(gè)給定值,就可以終止的時(shí)候,你就快要考慮遞歸了。
分享文章:c語(yǔ)言類函數(shù)遞歸調(diào)用例子 c語(yǔ)言中的函數(shù)遞歸調(diào)用
標(biāo)題網(wǎng)址:http://sd-ha.com/article28/doijhjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站排名、企業(yè)建站、全網(wǎng)營(yíng)銷推廣、營(yíng)銷型網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)