华师一附中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
  1. #include<iostream>
  2. using namespace std;
  3. const int  mm=100;
  4. int s[mm],a[mm],i,p,x,n;
  5. int main()
  6. {
  7.         cin>>n;
  8.         for(p=1; p<=mm-1; p++) a[p]=s[p]=0;
  9.         a[0]=s[0]=1;
  10.         for (i=2; i<=n; i++)
  11.         {
  12.                 ///cheng
  13.                 for (p=0; p<=mm-1; p++) a[p]*=i;
  14.                 for (p=0; p<=mm-2; p++)
  15.                 {
  16.                         x=a[p];
  17.                         a[p]=x%10;
  18.                         a[p+1]+=x/10;
  19.                 }
  20.                 ///jia
  21.                 for (p=0; p<=mm-1; p++) s[p]+=a[p];
  22.                 for (p=0; p<=mm-2; p++)
  23.                 {
  24.                         x=s[p];
  25.                         s[p]=x%10;
  26.                         s[p+1]+=x/10;
  27.                 }
  28.         }
  29.         ///shuchu
  30.         p=mm-1;
  31.         while (s[p]==0 && p>0) p--;
  32.         for  (; p>=0; p--) cout<<s[p];return 0;
  33. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2