亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C 語言遞歸

在本教程中,您將借助示例學(xué)習(xí)使用C語言編程編寫遞歸函數(shù)。

調(diào)用自身的函數(shù)稱為遞歸函數(shù)。并且,這種技術(shù)稱為遞歸。

遞歸如何工作?

void recurse()
{
    ... .. ...
    recurse();
    ... .. ...
}

int main()
{
    ... .. ...
    recurse();
    ... .. ...
}

遞歸在C語言編程中如何工作?

遞歸繼續(xù)進(jìn)行,直到滿足某些條件以防止遞歸為止。

為了防止無限遞歸,可以在一個(gè)分支進(jìn)行遞歸調(diào)用,而其他分支不進(jìn)行遞歸調(diào)用的情況下使用if ... else語句(或類似方法)。

示例:使用遞歸的自然數(shù)之和

#include <stdio.h>
int sum(int n);

int main() {
    int number, result;

    printf("請輸入一個(gè)正整數(shù): ");
    scanf("%d", &number);

    result = sum(number);

    printf("sum = %d", result);
    return 0;
}

int sum(int n) {
    if (n != 0)
        //sum()函數(shù)調(diào)用自身
        return n + sum(n-1); 
    else
        return n;
}

輸出結(jié)果

請輸入一個(gè)正整數(shù):3
sum = 6

最初,從main()函數(shù)調(diào)用sum(),并將number作為參數(shù)傳遞。

假設(shè)sum()中的n初始值為3。 在下一個(gè)函數(shù)調(diào)用期間,將2傳遞給sum()函數(shù)。 此過程一直持續(xù)到n等于0。

當(dāng)n等于0時(shí),if條件失敗,執(zhí)行else部分,最終將整數(shù)和返回給main()函數(shù)。

使用遞歸計(jì)算自然數(shù)之和

遞歸的優(yōu)缺點(diǎn)

遞歸使程序優(yōu)雅。但是,如果性能至關(guān)重要,請使用循環(huán)代替,因?yàn)檫f歸通常要慢得多。

話雖如此,遞歸是一個(gè)重要的概念。它經(jīng)常用于數(shù)據(jù)結(jié)構(gòu)和算法中。例如,在諸如樹遍歷之類的問題中通常使用遞歸。