C语言 求一个大数的阶乘
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的阶乘: