华师一附中OI组
标题:
P1009 阶乘之和
[打印本页]
作者:
admin
时间:
2018-8-10 16:03
标题:
P1009 阶乘之和
https://www.luogu.org/problemnew/show/P1009
题目描述
用高精度计算出 S=1!+2!+3!+…+n! (n≤50)S=1!+2!+3!+…+n!(n≤50)
其中“!”表示阶乘,例如: 5!=5×4×3×2×1 。
输入输出格式
输入格式:
一个正整数 N 。
输出格式:
一个正整数 S ,表示计算结果。
输入输出样例
输入样例#1:
3
输出样例#1:
9
作者:
admin
时间:
2020-2-2 16:47
#include<iostream>
using namespace std;
const int mm=100;
int s[mm],a[mm],i,p,x,n;
int main()
{
cin>>n;
for(p=1; p<=mm-1; p++) a[p]=s[p]=0;
a[0]=s[0]=1;
for (i=2; i<=n; i++)
{
///cheng
for (p=0; p<=mm-1; p++) a[p]*=i;
for (p=0; p<=mm-2; p++)
{
x=a[p];
a[p]=x%10;
a[p+1]+=x/10;
}
///jia
for (p=0; p<=mm-1; p++) s[p]+=a[p];
for (p=0; p<=mm-2; p++)
{
x=s[p];
s[p]=x%10;
s[p+1]+=x/10;
}
}
///shuchu
p=mm-1;
while (s[p]==0 && p>0) p--;
for (; p>=0; p--) cout<<s[p];return 0;
}
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2