首先由題了解到一般資料型別大小是儲存不了如此大的數字的階乘的,所以要採用陣列儲存的方式。
每一位陣列元素儲存一位數字,最後再輸出整個陣列便是**核心。
首先定義乙個函式用來將運算結果存入陣列
int into(int k, int x, int * length)
while (jw)
*length = n - 1;//計算次數變化
return 0;
}
完成需要使用的函式構建後,定義主函式和需要的變數及陣列。
使用for語句呼叫函式into()完成陣列填充
最後輸出陣列即為階乘結果
for (i = 2; i <= m; i++)
for (i = p; i >=0; i--)
printf("%d", x[i]);
完整源**如下:
#include#includeint into(int k, int x, int * length)
while (jw)
*length = n - 1;
return 0;
}int main()
for (i = p; i >=0; i--)
printf("%d", x[i]);
system("pause");
return 0;
}
c語言求大數階乘,10000的階乘
10000以內階乘,在c語言中沒有型別可以以儲存這麼大的數,所以我們可以用陣列來存它,int a 10005 這裡10005只是習慣,當然,也可以用斯特靈公式來算a陣列的大小 下面附上 題解請看 注釋,include int a 100000 int main 這層迴圈使得a陣列每個數都是個一位數 ...
大數階乘 C
沒辦法,今天是賊不爽的一天,就這個大數階乘搞了我一天,搞得我頭昏腦脹,所以今天必須得吐槽一下。不得不說,要做出這題,邏輯思維一定要縝密。廢話少說,直接上題。題目描述 輸入乙個正整數n,輸出n 的值。其中n 123 n。演算法描述 n 可能很大,而計算機能表示的整數範圍有限,需要使用高精度計算的方法。...
N的階乘 大數階乘
輸入n求n的階乘的準確值。input 輸入n 1 n 10000 output 輸出n的階乘 首先,要確定n的階乘的數字大概有多少位,這樣便於我們去選擇合適的演算法。階乘 當n 10000時,上式值為35660 已經向上取整 所以接受 include include include include ...