zoukankan      html  css  js  c++  java
  • AC日记——阶乘之和 洛谷 P1009(高精度)

    题目描述

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

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

    输入输出格式

    输入格式:

    一个正整数N。

    输出格式:

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

    输入输出样例

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



    思路:
      本来以为是道水题
      结果,写了个用unsigned long long的简单的循环只有50分
      又看了一下范围和题目才开始写的高精度


    来,上代码:
    #include<cstdio>
    #include<algorithm>
    
    using namespace std;
    
    int n,num[302],sum[302];
    
    void long_multiply(int number)
    {
        for(int i=0;i<=300;i++) num[i]*=number;
        for(int i=0;i<=300;i++)
        {
            if(num[i]>9)
            {
                num[i+1]+=num[i]/10;
                num[i]%=10;
            }
        }
    }
    
    void long_add()
    {
        for(int i=0;i<=300;i++)
        {
            sum[i]+=num[i];
            if(sum[i]>9)
            {
                sum[i+1]+=sum[i]/10;
                sum[i]%=10;
            }
        }
    }
    
    void long_print()
    {
        bool ok=false;
        for(int i=301;i>=0;i--)
        {
            if(sum[i]!=0&&!ok) ok=true;
            if(ok) putchar(sum[i]+48);
        }
        putchar('
    ');
    }
    
    int main()
    {
        num[0]=1;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            long_multiply(i);
            long_add();
        }
        long_print();
        return 0;
    }
  • 相关阅读:
    Xcode官方下载地址
    IOS9 Swift
    IOS常用框架
    JS 阻止事件冒泡
    ASP.NET MVC验证DateTime的问题
    如何将图片嵌入到Html中
    Linq使用中的ToList注意事项
    LINQ to Entity里面不能使用DateTime
    SQL Procedure Operations
    Windows Service Operations
  • 原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/6053062.html
Copyright © 2011-2022 走看看