C语言怎么计算10000的阶乘啊!

来源:百度知道 编辑:UC知道 时间:2024/05/27 11:52:32
C语言怎么计算10000的阶乘啊!急急急~!!!!

因为有个大数的问题,精确一点就用楼上提到的大数组来算,如果不考虑精度要求的话,是求对数,然后相加,最后大概可以得到是10的多少次方,例如5!就可以用sum=lg5+lg4+lg3+lg2+lg1,然后5!就是10的sum次方

1W的阶乘~~汗~~会死机的

你会求10!吗?

大数阶乘,开长数组吧。
http://www.cnblogs.com/confach/archive/2005/07/14/192703.html

数组分组模拟乘法。

N!的高精度做法,已在VC6.0中调试
#include<stdio.h>
#define M 10000
#define N 10000
int p=1;
void integer_product(int *a,int n)
{
int i,j,k;
for(j=2;j<=n;j++)
{
k=0;
for(i=0;i<p;i++)
a[i]*=j;
for(i=0;i<p;i++)
{
a[i]+=k;
k=a[i]/M;
a[i]%=M;
}
if(k)
{
p++;
a[p-1]+=k;
}
}
printf("%d",a[p-1]);
for(i=p-2;i>=0;i--)
printf("%04d",a[i]);
printf("\n");
}
int main()
{
int a[N]={0},n,i;
while(scanf(