1. 程式人生 > >P1009 階乘之和

P1009 階乘之和

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 namespace
std; 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 階乘之和