C語言求n的階乘(n!)
從鍵盤輸入一個(gè)數(shù),求出這個(gè)數(shù)的階乘,即 n!。
算法思想
首先要清楚階乘定義,所謂 n 的階乘,就是從 1 開始乘以比前一個(gè)數(shù)大 1 的數(shù),一直乘到 n,用公式表示就是:1×2×3×4×…×(n-2)×(n-1)×n=n!
具體的操作:利用循環(huán)解決問題,設(shè)循環(huán)變量為 i,初值為 1,i 從 1 變化到 n;依次讓 i 與 sum 相乘,并將乘積賦給 sum。
① 定義變量 sum,并賦初值 1。
② i 自增 1。
③ 直到 i 超過 n。
程序代碼
#include <stdio.h>
int main()
{
int i,n;
double sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("%d!=%lf",n,sum);
printf("\n");
return 0;
}</stdio.h>
調(diào)試運(yùn)行結(jié)果
輸入 5,對應(yīng)的階乘輸出情況如下所示;
5
5!=120.000000
輸入20,對應(yīng)的階乘輸出情況如下所示:
20
20!=2432902008176640000.000000
總結(jié)
① 由于階乘一般較大,會超出整型甚至是長整型所能表示的范圍,因此定義變量時(shí)就不能定義為整型,而應(yīng)該考慮雙精度數(shù)。
② 實(shí)訓(xùn)中定義了一個(gè)雙精度型的變量,用來存放結(jié)果。因此在輸出時(shí)應(yīng)注意雙精度數(shù)的輸出格式。
作者:大學(xué)生新聞網(wǎng) 來源:大學(xué)生新聞網(wǎng)
發(fā)布時(shí)間:2025-03-05 閱讀:
- C語言判斷三角形的類型
- 根據(jù)輸入的三角形的三條邊判斷三角形的類型,并輸出其面積和類型。
- 03-05 關(guān)注:0
- C語言求n的階乘(n!)
- 從鍵盤輸入一個(gè)數(shù),求出這個(gè)數(shù)的階乘,即 n!。
- 03-05 關(guān)注:0
- C語言分塊查找算法,索引順序查找算法
- 例如,采用分塊查找法在有序表 11、12、18、28、39、56、69、89、96、122、135、146、156、256、298 中查找關(guān)鍵字為 96 的元素。
- 03-05 關(guān)注:0
- C語言二分查找算法,折半查找算法
- 本實(shí)例采用二分查找法查找特定關(guān)鍵字的元素。要求用戶輸入數(shù)組長度,也就是有序表的數(shù)據(jù)長度,并輸入數(shù)組元素和査找的關(guān)鍵字。
- 03-05 關(guān)注:0
- C語言歸并排序算法
- 用歸并排序法對一組數(shù)據(jù)由小到大進(jìn)行排序,數(shù)據(jù)分別為 695、458、362、789、12、 15、163、23、2、986。
- 03-05 關(guān)注:0
- C語言選擇排序算法
- 用選擇排序法對一組數(shù)據(jù)由小到大進(jìn)行排序,數(shù)據(jù)分別為 526、36、2、369、56、45、78、92、125、52。
- 03-05 關(guān)注:0
- C語言快速排序算法
- 用快速排序法對一組數(shù)據(jù)由小到大進(jìn)行排序,數(shù)據(jù)分別為 99、45、12、36、69、22、62、 796、4、696。
- 03-05 關(guān)注:0
- C語言直接插入排序算法
- 插入排序是把一個(gè)記錄插入到已排序的有序序列中,使整個(gè)序列在插入該記錄后仍然有序。插入排序中較簡單的種方法是直接插入排序
- 03-03 關(guān)注:3