标签:for ring 输入输出格式 阶乘 ace string space math pac
用高精度计算出S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如:5!=5*4*3*2*1。
输入格式:
一个正整数N。
输出格式:
一个正整数S,表示计算结果。
3
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; }
标签:for ring 输入输出格式 阶乘 ace string space math pac
原文地址:http://www.cnblogs.com/CLGYPYJ/p/7363102.html