溫馨提示×

C語言遞歸函數(shù)如何實現(xiàn)階乘

小樊
81
2024-10-30 18:20:26
欄目: 編程語言

在C語言中,你可以使用遞歸函數(shù)來實現(xiàn)階乘

#include <stdio.h>

// 遞歸函數(shù)實現(xiàn)階乘
unsigned long long factorial(unsigned int n) {
    if (n == 0) {
        return 1; // 0的階乘為1
    } else {
        return n * factorial(n - 1); // 遞歸調(diào)用,n的階乘等于n乘以(n-1)的階乘
    }
}

int main() {
    unsigned int number;
    printf("請輸入一個非負整數(shù): ");
    scanf("%u", &number);

    // 檢查輸入是否為非負整數(shù)
    if (number < 0) {
        printf("輸入錯誤,請輸入一個非負整數(shù)。\n");
    } else {
        unsigned long long result = factorial(number);
        printf("%u的階乘為: %llu\n", number, result);
    }

    return 0;
}

這個程序首先定義了一個名為factorial的遞歸函數(shù),該函數(shù)接受一個無符號整數(shù)n作為參數(shù)。如果n為0,函數(shù)返回1,因為0的階乘為1。否則,函數(shù)返回n乘以factorial(n - 1)的結(jié)果,這是遞歸調(diào)用的關(guān)鍵部分。

main函數(shù)中,我們從用戶那里獲取一個非負整數(shù),然后調(diào)用factorial函數(shù)計算其階乘,并將結(jié)果輸出到屏幕上。

0