zoukankan      html  css  js  c++  java
  • luogu P1009 阶乘之和

    题目描述

    用高精度计算出S=1!+2!+3!+…+n!(n≤50)

    其中“!”表示阶乘,例如:5!=5*4*3*2*1。

    输入输出格式

    输入格式:

    一个正整数N。

    输出格式:

    一个正整数S,表示计算结果。

    输入输出样例

    输入样例#1:
    3
    
    输出样例#1:
    9

     就当复习下高精度

    #include<map>
    #include<queue>
    #include<stack>
    #include<cstdio>
    
    int ans[2000] = {1};
    int num[2000] = {1};
    int l=1;
    int miku;
    using namespace std;
    
    
    void gaojing(int x)
    {
        miku=0;
        for(int i=0;i<l;)
        {
            num[i]=num[i]*x+miku;
            miku=num[i]/10;
            num[i++]%=10;
            if(i==l&&miku)l++;
        }
        for(int i=0;i<l;i++)ans[i]+=num[i];
    }
    
    int main()
    {
        int n;
        scanf("%d",&n);
        for(int i=2;i<=n;i++)
        {
            gaojing(i);
        }
        for(int i=0;i<l;)
        {
            ans[i+1]+=ans[i]/10;
            ans[i++]%=10;
            if(i==l&&ans[i])l++;
        }
        
        for(int i=l-1;i>=0;i--) 
        printf("%d",ans[i]);
        return 0;
    }
  • 相关阅读:
    导航守卫
    asnyc
    扩展运算符 ···
    模版字符串
    iterator迭代器
    箭头函数
    解构
    变量let const
    vueUI可视化
    python图像特征提取
  • 原文地址:https://www.cnblogs.com/sssy/p/7020104.html
Copyright © 2011-2022 走看看