P1009 階乘之和
阿新 • • 發佈:2017-08-15
class log main 描述 iostream 階乘之和 include -m 格式
題目描述
用高精度計算出S=1!+2!+3!+…+n!(n≤50)
其中“!”表示階乘,例如:5!=5*4*3*2*1。
輸入輸出格式
輸入格式:
一個正整數N。
輸出格式:
一個正整數S,表示計算結果。
輸入輸出樣例
輸入樣例#1:3輸出樣例#1:
9
高精度練習。
#include<iostream> #include<cstdio> #include<string.h> #include<algorithm> #include<math.h> #include<cmath> using namespacestd; int a[200],n; int b[200]; int main() { cin>>n;b[1]=1; for(int i=1;i<=n;i++) { for(int j=1;j<=100;j++) b[j]*=i; for(int j=1;j<=100;j++) if(b[j]>9) b[j+1]+=(b[j])/10,b[j]%=10; for(int j=1;j<=100;j++) { a[j]+=b[j]; a[j+1]+=a[j]/10; a[j]%=10; } } int i=100; while(a[i]==0) i--; printf("%d",a[i]); for(i=i-1;i>=1;i--) printf("%d",a[i]); return 0; }
P1009 階乘之和