【C語(yǔ)言】函數(shù)的遞歸調(diào)用-創(chuàng)新互聯(lián)

? 所謂的函數(shù)的遞歸調(diào)用,就是函數(shù)自己調(diào)用自己。

創(chuàng)新互聯(lián)建站成立于2013年,先為蘭考等服務(wù)建站,蘭考等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為蘭考企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

? 有很多學(xué)習(xí)編程的人就在這里搞懵圈了,今天我用更簡(jiǎn)單的方式來解釋這個(gè)函數(shù)的遞歸調(diào)用。

? 舉一個(gè)例子,在某個(gè)部隊(duì)中有 A B C D E這五個(gè)士兵在接受訓(xùn)練,在訓(xùn)練時(shí)指揮官就問士兵A:“你多大了???”,然后士兵A回答:“我比士兵B大兩歲”。于是指揮官又去問士兵B:“你多大了???”,士兵B回答道:“我比士兵C大兩歲”,于是就這樣一直問,直到問到了士兵E,士兵E回答道:“我今年20歲”,于是,指揮官就可以從后往前計(jì)算出士兵A的年齡了。

? 那么我們就來寫一個(gè)函數(shù)來解決這個(gè)問題——求n號(hào)士兵的年齡

#includeint age(int n){
    int t;
    if(n==1){
        t=20;
    }else{
        t=age(n-1)+2;
    }
    return t;
}

int main(){
    printf("%d",age(5));
    return 0;
}

將上面的代碼復(fù)制下來用編譯器編譯一下,看看是不是就得到了A士兵的年齡?

那么,上面這個(gè)就是一個(gè)函數(shù)遞歸調(diào)用的一個(gè)例子。

根據(jù)上述代碼,我們一定要注意的是——必須要有一個(gè)明確的遞歸結(jié)束標(biāo)志。

看上面的函數(shù),是不是當(dāng)n==1的時(shí)候就不再進(jìn)行遞歸調(diào)用了?如果沒有這個(gè),那么這個(gè)函數(shù)就會(huì)一直遞歸調(diào)用下去。

那么,我們?cè)倮煤瘮?shù)遞歸調(diào)用來解決一些問題。

1.求n的階乘

int jc(int n){
    int t;
    if(n==1){
        t=1;
    }else{
        t=n*jc(n-1);
    }
    return t;
}

2.求1-n的和

int Sum(int n){
    int t;
    if(n==1){
        t=1;
    }else{
        t=n+Sum(n-1);
    }
    return t;
}

那么使用函數(shù)的遞歸調(diào)用有什么好處呢?

1.代碼簡(jiǎn)潔

? 2.運(yùn)算高效

但是,函數(shù)的遞歸調(diào)用也不是沒有缺點(diǎn)的,在程序中它會(huì)占用大量的內(nèi)存,因此遞歸調(diào)用是一種犧牲內(nèi)存換時(shí)間的方式。所以在使用遞歸調(diào)用的時(shí)候需要慎重考慮。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)標(biāo)題:【C語(yǔ)言】函數(shù)的遞歸調(diào)用-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://bm7419.com/article26/cdgdjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、標(biāo)簽優(yōu)化

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)