求大数的阶乘...比如1000...
发布网友
发布时间:2024-10-09 07:41
我来回答
共1个回答
热心网友
时间:2024-11-13 21:29
查看:网上找到的最简洁的算法,
不过有些地方我看不懂,
求解答,C语言忘得差不多了
。
你试试吧,好像可以算超过20000的阶乘,
20000的阶乘大概算4秒钟,
不过我算了下40000的算了30分钟没算出来。。。。。。。。
#include<stdio.h>
#define
N
1000
//要计算的N
long
s[N]={1,1},n=N,t=2,a=1,b=0;
int
main()//雨中飞燕之作
{
for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)
s[a]=(b+=s[a]*t)%10000,b/=10000;
for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);
return
0;
}