P1009 階乘之和 高精度

2021-10-24 10:45:16 字數 1043 閱讀 4011

題目描述

用高精度計算出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的十位,依此類推。...