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的階乘: