題目描述
用高精度計算出s=1!+2!+3!+…+n!(n≤50)s=1!+2!+3!+…+n! (n≤50)s=1!+2!+3!+…+n!(n≤50)
其中「!」表示階乘,例如:5!=5×4×3×2×15!=5 \times 4 \times 3 \times 2 \times 15!=5×4×3×2×1。
輸入格式
乙個正整數nnn。
輸出格式
乙個正整數sss,表示計算結果。
輸入輸出樣例
輸入 #1
輸出 #1
說明/提示
注,《深入淺出基礎篇》中使用本題作為例題,但是其資料範圍只有 n≤20n\le20n≤20,使用書中的**無法通過本題。
如果希望通過本題,請繼續學習第八章高精度的知識。
#include
#include
using
namespace std;
const
int maxn =
1e5+10;
struct bign};
bign mul
(bign a,
int b)
while
(carry) res.d[res.len++
]= carry %
10, carry /=10
;while
(res.len >
1&& res.d[res.len -1]
==0) res.len--
;return res;
}bign add
(bign a, bign b)
while
(carry) ans.d[ans.len++
]= carry %
10, carry /=10
;return ans;
}void
output
(bign x)
intmain()
output
(ans)
;return0;
}
P1009 階乘之和
提交該題 討論 題解記錄 用高精度計算出s 1!2!3!n!n 50 其中 表示階乘,例如 5!5 4 3 2 1。輸入格式 乙個正整數n。輸出格式 乙個正整數s,表示計算結果。輸入樣例 1 3 輸出樣例 1 9 include include using namespace std int a 1...
題解 P1009 階乘之和
p1009 階乘之和 qaq,剛開始看完題直接立刻按照題目階乘相加寫出了程式,資料使用int型別處理,4個測試點只通過兩個。感覺應該是int型資料不夠大,存不下結果,然後換成了long long測試一遍還是不行,又換成了unsigned long long,還是不夠大,這個不行 include in...
P1009 階乘之和(大數計算)
allsight c語言 高精度加法 問題描述 輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。演算法描述 由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。定義乙個陣列a,a 0 用於儲存a的個位,a 1 用於儲存a的十位,依此類推。...