欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

大数阶乘

程序员文章站 2022-05-12 13:40:55
...

描述

我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?

输入

输入一个整数m(0

输出

输出m的阶乘,并在输出结束之后输入一个换行符

代码段

#include <stdio.h>
int main()
{
    int carry,n,j;
    int a[40001];
    int digit;
    int temp,i;   
    while(scanf("%d",&n)!=EOF){
    a[0]=1;digit=1;
    for(i=2; i<=n; i++)
    {
        for(carry=0,j=1; j<=digit; ++j)
        {
            temp=a[j-1]*i+carry;
            a[j-1]=temp%10;
            carry=temp/10;
        }
        while(carry)
        {
            //digit++;
            a[++digit-1]=carry%10;
            carry/=10;
        }
    }

    for(int k=digit; k>=1; --k)
        printf("%d",a[k-1]);
    printf("\n");
 printf("length=%d\n",digit);
 }
    return 0;
}

程序运行结果图

大数阶乘

编译过程

大数阶乘

相关标签: acm