輸入一個大於 1 的整數 n,分別使用 for、while、do-while 三種循環語句計算 n 的階乘(n!)。
階乘定義:n! = 1 × 2 × 3 × ... × n。初始化結果變量 result = 1,循環變量從 1 遞增到 n,每次將 result 乘以當前循環變量。
#include <stdio.h>
int main() {
int n, i;
long long result = 1; // 使用 long long 防止溢出
printf("請輸入一個大於 1 的整數: ");
scanf("%d", &n);
if (n < 1) {
printf("輸入無效!\n");
return 1;
}
for (i = 1; i <= n; i++) {
result *= i;
}
printf("%d! = %lld\n", n, result);
return 0;
}
#include <stdio.h>
int main() {
int n, i = 1;
long long result = 1;
printf("請輸入一個大於 1 的整數: ");
scanf("%d", &n);
if (n < 1) {
printf("輸入無效!\n");
return 1;
}
while (i <= n) {
result *= i;
i++;
}
printf("%d! = %lld\n", n, result);
return 0;
}
#include <stdio.h>
int main() {
int n, i = 1;
long long result = 1;
printf("請輸入一個大於 1 的整數: ");
scanf("%d", &n);
if (n < 1) {
printf("輸入無效!\n");
return 1;
}
do {
result *= i;
i++;
} while (i <= n);
printf("%d! = %lld\n", n, result);
return 0;
}
int 只能算到 12!,建議用 long long(到 20!)或大整數庫。嘗試編寫一個通用函數 long long factorial(int n),並在主函數中調用三種循環版本驗證結果一致性。