精度计算-大数阶乘-ACM经常使用算法

语法 spa

  int result=factorial(int n);code

参数:blog

  n的阶乘class

返回值:语法

  阶乘结果的位数程序

注意:  di

  本程序直接输出n!的结果,须要返回结果请保留long a[]co

 inlclude <math.h>
background

源程序:  math

int factorial(int n) {   long a[10000];   int i,j,l,c,m=0,w;   a[0]=1;   for(i=1;i<=n;i++) {   c=0;   for(j=0;j<=m;j++) {   a[j]=a[j]*i+c;   c=a[j]/10000;   a[j]=a[j]%10000;   }  if(c>0) {m++;a[m]=c;}   }   w=m*4+log10(a[m])+1;   printf("\n%ld",a[m]);   for(i=m-1;i>=0;i--) printf("%4.4ld",a[i]);   return w; } 
相关文章
相关标签/搜索