P1009 阶乘之和
Posted wang者归来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1009 阶乘之和相关的知识,希望对你有一定的参考价值。
题目描述
用高精度计算出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 阶乘之和的主要内容,如果未能解决你的问题,请参考以下文章