HBU-PTT第二周 求n!的值

7-3 求n!的值

用高精度方法,求n!的精确值(n以一般整数输入)

输入格式

一个整数

输出格式

一个整数

输入样例

10

输出样例

3628800

代码如下:

#include<iostream>
using namespace std;
const int maxN = 1010;
int a[maxN];//创建一个数组
int main()
{
    int num;
    cin>>num;
    a[0]=1;//0的阶乘是1
    for(int i = 2;i<=num;i++)//从2开始算阶乘
    {
        int carry = 0;//进位数字
        for(int j = 0;j<maxN;j++)//把算出来的结果存在a数组中,再把结果按位拆开存在每一个数组元素
        {
            a[j] = carry+a[j]*i;//算结果
            carry = a[j]/10;//拆进位
            a[j] = a[j]%10;//拆个位
        }
    }
    int len = maxN;
    while(a[len-1]==0&&len>1)
    {
        len--;
    }
    for(int i = len-1;i>=0;i--)
    {
        printf("%d",a[i]);
    }
    return 0;
}

运行结果:

image

posted @ 2022-07-08 17:37  .七月流星  阅读(47)  评论(0)    收藏  举报