C言語の再帰関数を使って、nの階乗を求める方法は何ですか?

以下是使用C语言递归函数来计算n的阶乘的示例代码:

#include <stdio.h>

// 声明递归函数
unsigned long long factorial(int n);

int main() {
    int n;
    printf("请输入一个正整数n:");
    scanf("%d", &n);
    
    // 调用递归函数求解阶乘
    unsigned long long result = factorial(n);
    
    printf("%d的阶乘为%llu\n", n, result);
    
    return 0;
}

// 定义递归函数
unsigned long long factorial(int n) {
    if (n <= 1) {
        return 1;
    }
    return n * factorial(n - 1);
}

上記のコードでは、nの階乗を計算するために再帰関数factorialが使用されています。関数の定義では、最初に終了条件を判断し、つまりnが1以下の場合は1を返して階乗を終了します。そうでない場合は、再帰関数を続けてn-1を引数として呼び出し、その結果をnと乗算してnの階乗を取得します。

main 関数では、最初にユーザーが入力した正の整数nを読み取り、その後、再帰関数factorialを呼び出してnの階乗を解き、その結果を画面に出力します。

bannerAds