C 新手向 高精度階乘和的做題感想

2021-08-20 21:55:28 字數 788 閱讀 4797

這篇部落格主要是對我做題目的一些感想以及詳解(以防以後忘記),也可以幫助一下以後的學弟學妹們

由於面向新手,我自己也是新手,所以很多地方有疏漏,或者太繁瑣

基本上是在前輩們的基礎上對程式進行的解析,補充說明

用高精度計算出s=1!+2!+3!+…+n!(n≤50)

其中「!」表示階乘,例如:5!=5*4*3*2*1。

輸入正整數n,輸出計算結果s。

乙個正整數n。

計算結果s。

/*涉及自定義函式的知識*/

/*請先了解高精加,高精乘*/

#includeusing namespace std;

int ans[105]/*階乘和*/,jc[105]/*階乘*/,jc1=100/*階乘在陣列中的位置*/,ans1=100/*階乘和在陣列中的位置*/;

void pjc()//這個函式計算目前階乘的最高位在陣列中是第幾個。

void pans()//和上面原理一樣,讀的是ans的

void ljq()//這個函式是階乘的累加器,此處運用高精乘

pans()//然後用pans函式讀ans的位置;

}/*主函式*/

int main()

pjc();//用這個函式讀階乘的位置

ljq();//把本次階乘的結果存入累加器

} for(int i=ans1;i<=100;i++)

printf("%d",ans[i]);//順序輸出

return 0;

}

階乘的和高精度

題目描述 用高精度計算出 s 1 2 3 n n 50 s 1 2 3 n n 50 其中 表示階乘,例如 5 5 4 3 2 1 5 5 4 3 2 1 輸入正整數nn 輸出計算結果ss 輸入 乙個正整數nn 輸出 計算結果ss 輸入樣例 5 輸出樣例 153 include using name...

高精度階乘(c語言)

在刷題時偶然遇到了高精度階乘的問題,於是立即自學了一下,在此作簡要總結。提出背景 普通的階乘演算法 不斷用i i 1 迴圈 對於較大數的階乘,由於運算結果位數過大,會造成溢位,使結果精度低。此時引出高精度計算階乘的方法。實現思路 用陣列倒序儲存每一位的數,手動調整進製,再倒序輸出 程式 includ...

階乘和(高精度演算法)

對於自然數n的階乘,當n比較小時,可以32位整數int範圍內準確表示 例如12 479001600 2147483647 231 1 而20 2432902008176640000 9223372036854775807 263 1 可以在64位整數long long int範圍內準確表示 但是 n...