參考程式碼:
#include "stdio.h"
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for迴圈求累積
s=s*i;
printf("%d\n",s);
return 0;
}
/*
首先要清楚階乘定義,所謂 n 的階乘,就是從 1 開始乘以比前一個數大 1 的數,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n! 具體的操作:利用迴圈解決問題,設迴圈變數為 i,初值為 1,i 從 1 變化到 n;依次讓 i 與 sum 相乘,並將乘積賦給 sum。 ① 定義變數 sum,並賦初值 1。 ② i 自增 1。 ③ 直到 i 超過 n。
輸入 5,對應的階乘輸出情況如下所示;
55!=120.000000
輸入20,對應的階乘輸出情況如下所示:
2020!=2432902008176640000.000000
參考程式碼:
#include "stdio.h"
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for迴圈求累積
s=s*i;
printf("%d\n",s);
return 0;
}
/*
演算法思想首先要清楚階乘定義,所謂 n 的階乘,就是從 1 開始乘以比前一個數大 1 的數,一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n! 具體的操作:利用迴圈解決問題,設迴圈變數為 i,初值為 1,i 從 1 變化到 n;依次讓 i 與 sum 相乘,並將乘積賦給 sum。 ① 定義變數 sum,並賦初值 1。 ② i 自增 1。 ③ 直到 i 超過 n。
除錯執行結果輸入 5,對應的階乘輸出情況如下所示;
55!=120.000000
輸入20,對應的階乘輸出情況如下所示:
2020!=2432902008176640000.000000