ACM常用代码--精度计算——大数阶乘
2011-03-12 14:10 Rollen Holt 阅读(934) 评论(0) 编辑 收藏 举报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:
==============================================================================
本博客已经废弃,不在维护。新博客地址:http://wenchao.ren
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。他
们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是,其
实我是一个程序员
==============================================================================