当前位置:编程学习 > C/C++ >>

C语言 求一个大数的阶乘

C语言 求一个大数的阶乘
[cpp] 
void BigFactorial(int m) 

    static int a[50000]={0,1};//第一位不用 
    int i,j,carry,tmp,lenth=1;//carry表示进位 
     
    for (i=2;i<=m;i++) 
    { 
        carry=0; 
        for (j=1;j<=lenth;j++) 
        { 
            //乘法转化为加法和进位 
            tmp=a[j]*i+carry; 
            a[j]=tmp%10; 
            carry=tmp/10; 
 
            //如果有进位,则向前扩展一位 
            if (j==lenth&&carry!=0) 
                lenth++; 
        } 
    } 
    for(int k=lenth;k>=1;k--) 
        printf("%d",a[k]); 

下面计算1000的阶乘:
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,