zoukankan      html  css  js  c++  java
  • 15:阶乘和

    15:阶乘和

    总时间限制: 
    1000ms
     
    内存限制: 
    65536kB
    描述

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

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

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

    输入
    一个正整数N。
    输出
    计算结果S。
    样例输入
    5
    样例输出
    153
    来源
    NOIP1998复赛 普及组 第二题
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<cstring>
     5 using namespace std;
     6 int a[10001]={1};
     7 int ans[100001]={0};
     8 char n[1001];
     9 int en[1001];
    10 int lans=1;
    11 int la=1;
    12 int x;
    13 int main()
    14 {
    15     int n;
    16     cin>>n;
    17     int x=0;
    18     for(int i=1;i<=n;i++)//寻找每一个数 
    19     {
    20         memset(a,0,sizeof(a));
    21         a[0]=1;
    22         for(int k=1;k<=i;k++)//求阶乘 
    23         {
    24             for(int j=0;j<la;j++)
    25             {
    26                 a[j]=a[j]*k+x;
    27                 x=a[j]/10;
    28                 if(x>0&&j==la-1)
    29                 la++;
    30                 a[j]=a[j]%10;
    31             }
    32             
    33         }
    34         int l=0;
    35              x=0;
    36             while(l<=la||l<=lans)
    37             {
    38                 ans[l]=ans[l]+a[l]+x;
    39                 x=ans[l]/10;
    40                 if(x>0)
    41                 lans++;
    42                 ans[l]=ans[l]%10;
    43                 l++;
    44             }
    45     }
    46     int flag=0;
    47     for(int i=lans;i>=0;i--)
    48     {
    49         if(ans[i]==0&&flag==0)
    50         continue;
    51         else flag=1;
    52         cout<<ans[i];
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    5.Docker服务进程关系
    朴素贝叶斯知识点概括
    k近邻法(KNN)知识点概括
    机器学习的应用实例
    HNU 10111 0-1矩阵
    CSU 1421 Necklace
    Poj 3469 Dual Core CPU
    Poj 2135 Farm Tour
    Poj 3180 The Cow Prom
    HDU 1004 Let the Balloon Rise
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6561160.html
Copyright © 2011-2022 走看看