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

高精度阶乘

时间:2020-09-21 11:51:39      阅读:30      评论:0      收藏:0      [点我收藏+]

标签:fine   names   stream   逆序输出   cstring   +=   cst   初始化   mes   

高精度阶乘

#include<iostream>
#include<cstring>
#include<cstdio>
#include<string>
#include<queue>
#include<stack>
#include<algorithm>
#include<vector>
#include<map>
#define MAXN 0x3f3f3f3f
using namespace std;
#include<stdio.h>
int main()
{
    int A[100000] = {0};//初始化为0
    int B[100000] = {0};
    int n;
    A[1] = 1;
    B[1] = 1;
    cin >> n;
    for (int i = 2; i <= n;i++)
    {
        for (int j = 1; j <= 1000;j++)
        {
            A[j] = A[j] * i;}

            for (int j = 1; j <= 100;j++)//进位
              {if (A[j] > 9)
                {
                    A[j + 1] += A[j] / 10;
                    A[j] = A[j] % 10;
                }
        
        }
        for (int j = 1; j <= 1000;j++)
        {

            B[j] += A[j];
            if(B[j]>9)
            {
                B[j + 1] += B[j] / 10;
                B[j]=B[j]%10;
            }
        }
    }
    int h = 100;
    while(B[h]==0&&h>1)//去除前导0    
    {
        h--;
    }
    for (int i = h; i >= 1;i--)//逆序输出
    {
        cout << B[i];
    }
        return 0;
}

高精度阶乘

标签:fine   names   stream   逆序输出   cstring   +=   cst   初始化   mes   

原文地址:https://www.cnblogs.com/a821403286/p/13693724.html

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