重操舊業啦
用高精度計算出s=1!+2!+3!+…+n! (n≤50)
其中「!」表示階乘,例如:5!=5×4×3×2×1。
乙個正整數n。
乙個正整數s,表示計算結果。
一道顯然的高精度乘法在做加法,n<13爆做,不爆int。n>=13高精度;
值得注意的一點是,題目要求求階乘並加和,寫題時容易誤寫成求階乘,忘記加和;
具體注釋已經放進了**裡
#includeint a[10005],g[10005],s[10005],b[10005],he[10005];int
main()
printf("%d
",sum);
return0;
}else
for(i=1;;i++)
for(j=13;j<=n;j++)//
從13開始高精度求階乘
else jin=0
; jin+=ans/10
; }
jin=0
;
for(i=1;i<=t+10;i++)
else jin=0
; jin+=ans/10
; }
jin=0;he[1]=g[1
];
for(i=2;i<=t+10;i++)
else jin=0
; }
//求和即在he中表示出j的階乘
for(i=1;i<=t+10;i++)
else jin=0
; }
//再次求和,得出j內階乘和
for(i=1;i<=t+10;i++)
if(a[i]!=0)t=i;//
用t計錄答案位數
}
for(i=t;i>=1;i--)
printf("%d
",a[i]);//
輸出 return0;
}}
階乘之和 luogu P1009
題目描述 用高精度計算出s 1!2!3!n!n 50 其中 表示階乘,例如 5!5 4 3 2 1。輸入輸出格式 輸入格式 乙個正整數n。輸出格式 乙個正整數s,表示計算結果。輸入輸出樣例 輸入樣例 1 輸出樣例 1 include includechar result 55 20000 int r...
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...