码迷,mamicode.com
首页 > 其他好文 > 详细

阶乘和

时间:2017-09-16 13:36:15      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:i++   namespace   main   clu   内存   cin   str   ons   std   

阶乘和

链接: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;
} 

 

阶乘和

标签:i++   namespace   main   clu   内存   cin   str   ons   std   

原文地址:http://www.cnblogs.com/EdSheeran/p/7530630.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!