題組內容
數學運算中階乘定義為
,其中N 為正整數。
,其中N 為正整數。
(二)請以C 語言設計一程式內含主程式(包含由鍵盤輸入N 與螢幕輸出結果)與一副程式並運用遞迴呼叫(recursive call)技術,使該程式輸入一正整數N 後可以計算並輸出N!的值。【8 分】
詳解 (共 1 筆)
詳解
#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)!
}
}
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);
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);
}
if (N < 0) {
printf("請輸入一個正整數。\n");
} else {
unsigned long long result = factorial(N);
printf("%d! = %llu\n", N, result);
}
return 0;
}
說明
factorial 函數:
}
說明
factorial 函數:
這個函數是遞迴函數,用來計算階乘。
當 n 為 0 時,返回 1(因為 0! = 1)。
否則,返回 n * factorial(n - 1),即 N! = N * (N-1)!。
main 函數:
當 n 為 0 時,返回 1(因為 0! = 1)。
否則,返回 n * factorial(n - 1),即 N! = N * (N-1)!。
main 函數:
從鍵盤輸入一個正整數 N。
如果輸入的 N 是負數,提示用戶輸入正整數。
否則,調用 factorial 函數計算 N!,並輸出結果。
如果輸入的 N 是負數,提示用戶輸入正整數。
否則,調用 factorial 函數計算 N!,並輸出結果。