如何写大数阶乘啊~~
这两天菜鸟我一直在研究如何解决位数过多的问题~~但始终没头绪~上网查到的又看不懂~各位前辈帮帮忙~~~~给个易于理解的行不??~~菜鸟我在线等回音~!!!
#include<stdio.h>
#define N 1000 //要计算的N
long s[N]={1,1},n=N,t=2,a=1,b=0,p=10000;
int main()//雨中飞燕之作
{
for(;a<=*s||(++t<=n?(b=0,a=1):0);(*s==a++&&b)?(*s)++:0)
s[a]=(b+=s[a]*t)%p,b/=p;
for(printf("%d",s[*s]);--*s>0;)printf("%04d",s[*s]);
return 0;
}
玩一把。。。其实就是简单高精度,搜索一下就有了
" border="0" />[color=white]
[[it] 本帖最后由 雨中飛燕 于 2008-4-23 14:42 编辑 [/it]]