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

    洛谷团队希望加入!
    题目描述
    用高精度计算出S=1!+2!+3!+…+n! (n≤50)S=1!+2!+3!+…+n!(n≤50)

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

    输入格式
    一个正整数NN。

    输出格式
    一个正整数SS,表示计算结果。

    输入输出样例
    输入 #1复制
    3
    输出 #1复制
    9
    说明/提示
    注,《深入浅出基础篇》中使用本题作为例题,但是其数据范围只有 nle20n≤20,使用书中的代码无法通过本题。

    如果希望通过本题,请继续学习第八章高精度的知识。

    #include<iostream>
    #include<bits/stdc++.h>
    using namespace std;
    int a[2000];
    int b[2000];
    int c[2000];
    int sum[2000];
    void pplus(int *a,int *c)
    {
        int jw=0;
        for(int i=1;i<=1000;i++)
        {
            c[i]+=a[i]+jw;
            jw=c[i]/10;
            c[i]%=10;
        }
    }
    void cheng(int *a,int c)
    {
        int jw=0;
        for(int i=1;i<=1000;i++)
        {
            a[i]=a[i]*c+jw;
            jw=a[i]/10;
            a[i]%=10;
        }
    }
    int main()
    {
        int n;
        cin>>n;
        a[1]=1;
        for(int i=1;i<=n;i++)
        {
            cheng(a,i);
            pplus(a,c);
        }
        bool flag=0;
        for(int i=1000;i>=1;i--)
        {
            if(c[i]!=0) flag=1;
            if(flag) cout<<c[i];
        }
    }
    
  • 相关阅读:
    ZOJ 3705 Applications
    UVA 220 Othello
    HDU 2084 数塔
    第五章:变量
    第四章:注释
    第三章:程序结构
    第二章:项目的创建和环境熟悉
    第一章:c#开发环境安装
    处理字段串
    查询表的列信息
  • 原文地址:https://www.cnblogs.com/xmcword/p/13761350.html
Copyright © 2011-2022 走看看