1 精度计算--大数阶乘
语法:int result=factorial(int n);
参数:n:
n 的阶乘
返回值:
阶乘结果的位数
注意:
本程序直接输出n!的结果,需要返回结果请保留long a[]
需要 math.h
1: int factorial(int n)2: {3: long a[10000];4: int i,j,l,c,m=0,w;5:6: a[0]=1;7: for(i=1;i<=n;i++)8: {9: c=0;10: for(j=0;j<=m;j++)11: {12: a[j]=a[j]*i+c;13: c=a[j]/10000;14: a[j]=a[j]%10000;15: }16: if(c>0) {m++;a[m]=c;}17: }18:19: w=m*4+log10(a[m])+1;20: printf("\n%ld",a[m]);21: for(i=m-1;i>=0;i--) printf("%4.4ld",a[i]);22: return w;23: }24: