#include <stdio.h>
// 遞迴函數,用於計算 N!
unsigned long long factorial(int n) {
if (n == 0) {
return 1; // 基礎情況:0! = 1
} else {
return n * factorial(n - 1); // 遞迴情況:N! = N * (N-1)!
}
}
int main() {
int N;
printf("請輸入一個正整數 N: ");
scanf("%d", &N);
// 確保輸入的 N 是正整數
if (N < 0) {
printf("請輸入一個正整數。\n");
} else {
unsigned long long result = factorial(N);
printf("%d! = %llu\n", N, result);
}
return 0;
}
說明
factorial 函數:
這個函數是遞迴函數,用來計算階乘。
當 n 為 0 時,返回 1(因為 0! = 1)。
否則,返回 n * factorial(n - 1),即 N! = N * (N-1)!。
main 函數:
從鍵盤輸入一個正整數 N。
如果輸入的 N 是負數,提示用戶輸入正整數。
否則,調用 factorial 函數計算 N!,並輸出結果。