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: 

相关文章:

  • 2021-12-23
  • 2021-11-17
  • 2022-01-23
  • 2021-10-26
  • 2022-12-23
  • 2021-06-27
  • 2022-02-20
  • 2022-12-23
猜你喜欢
  • 2021-05-23
  • 2022-02-24
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-15
  • 2021-05-17
相关资源
相似解决方案