阿摩線上測驗 登入

申論題資訊

試卷:96年 - 096年身心障礙人員資訊處理(四等)#36107
科目:程式設計
年份:96年
排序:0

申論題內容

三、請寫一遞迴程式(recurisive program) 計算 n!(即 n! = n 1× 2×3×...× ,n 是由外界輸入的一個大於 1 的整數)。(25 分)

詳解 (共 1 筆)

詳解 提供者:hchungw
#include <stdio.h>
long long factorial(int n) {
    if (n == 0)  // 基礎情況
        return 1;
    else  // 遞迴步驟
        return n * factorial(n - 1);
}
int main() {
    int n;
    printf("Enter a positive integer greater than 1: ");
    scanf("%d", &n);
    if (n < 0) {
        printf("Please enter a positive integer.\n");
    } else {
        printf("%d! = %lld\n", n, factorial(n));
    }
    return 0;
}
這個程序首先定義了一個名為factorial的遞迴函式,用於計算一個整數n的階乘。在主函式main中,程序將從用戶那裡讀取一個正整數,然後調用factorial函式來計算並打印這個數字的階乘。這個實現假定了輸入的數字大於或等於0,因為負數的階乘是未定義的。