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

    https://www.luogu.org/problem/show?pid=1009

    题目描述

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

    其中“!”表示阶乘,例如:5!=54321。

    输入输出格式

    输入格式:

    一个正整数N。

    输出格式:

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

    输入输出样例

    输入样例#1:
    3
    
    输出样例#1:
    9
     1 #include <algorithm>
     2 #include <iostream>
     3 
     4 using namespace std;
     5 
     6 int n;
     7 int sum[505],mul[505];
     8 
     9 void multiply(int k)
    10 {
    11     int x=0;
    12     for(int i=1;i<=mul[0];i++)
    13     {
    14         mul[i]=mul[i]*k+x;
    15         if(mul[i]>9)
    16         {
    17             x=mul[i]/10;
    18             mul[i]%=10;
    19             mul[0]=max(mul[0],i+1);
    20         }
    21         else x=0;
    22     }
    23 
    24 }
    25 
    26 void add()
    27 {
    28     int x=0,k=max(mul[0],sum[0]);
    29     for(int i=1;i<=k;i++)
    30     {
    31         sum[i]=sum[i]+mul[i];
    32         sum[i+1]+=sum[i]/10;
    33         sum[i]%=10;
    34         //sum[0]++;
    35     }
    36 }
    37 
    38 int main()
    39 {
    40     cin>>n;
    41     mul[0]=1;sum[0]=1;mul[1]=1;sum[1]=1;
    42     for(int i=2;i<=n;i++)
    43     {
    44         multiply(i);
    45         add();
    46     }
    47     for(int i=max(sum[0],mul[0]);i>=1;i--)
    48         cout<<sum[i];
    49     return 0;
    50 }
    ——每当你想要放弃的时候,就想想是为了什么才一路坚持到现在。
  • 相关阅读:
    jmeter实战
    安卓学习进度_11
    安卓学习进度_10
    安卓学习进度_9
    安卓学习进度_8
    安卓软件学习进度_7
    安卓学习进度_6
    安卓软件学习进度_5
    安卓软件学习进度_4
    安卓软件学习进度_3
  • 原文地址:https://www.cnblogs.com/Shy-key/p/6665342.html
Copyright © 2011-2022 走看看