精度計算-大數階乘-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; } 
相關文章
相關標籤/搜索