首页 > 其他 > 详细

高精度阶乘

时间:2020-09-18 23:05:20      阅读:50      评论:0      收藏:0      [点我收藏+]

高精度阶乘

#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;
}

高精度阶乘

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!