• 阶乘和


    阶乘和

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1173


    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

    用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5*4*3*2*1。

    输入正整数N,输出计算结果S。

     

    【输入】

    一个正整数N。

    【输出】

    计算结果S。

    【输入样例】

    5

    【输出样例】

    153
    题解:求阶乘+高精度算法
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    const int maxn=5e4+5;
    int a[maxn],c[maxn];
    int main(){
        int n,x=1,l=0,k=0,L=0;
        c[0]=1;
        cin>>n;
        while(x<=n){
            k=0;
            for(int i=0;i<=l;i++){
                c[i]=k+c[i]*x;
                k=c[i]/10;
                c[i]%=10;
                if(k>0&&i>=l)l++;
        
            }    
            x++;
            L=max(L,l);
            for(int i=0;i<=L;i++)
                if((a[i]=c[i]+a[i])>=10)
                {
                    a[i+1]++;a[i]-=10;
                }
                    
                
        }
        for(int i=l;i>=0;i--)cout<<a[i];
        cout<<endl;
        return 0;
    } 
  • 相关阅读:
    K近邻法
    决策树
    朴素贝叶斯
    Git学习笔记
    【原】maven web项目eclipse搭建
    三道面试题
    72-74 流的考点
    57-71 容器考点
    四 java web考点
    五 数据库考点
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7530630.html
Copyright © 2020-2023  润新知