数学问题--大数的阶乘
2013-09-01 21:56
281 查看
#include <stdio.h> #include <math.h> int factorial(int n) //求阶乘,返回值 是结果值的位数 { long a[10000]; int i,j,c,m=0; 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;} } printf("%ld",a[m]); for(i=m-1;i>=0;i--) printf("%4.4ld",a[i]); int w=m*4+(int)log10(a[m])+1; return w; } void main() { factorial(20); }
语法:int result=factorial(int n); | |
参数: | |
n: | n 的阶乘 |
返回值: | 阶乘结果的位数 |
这里的方法很简洁,如果你想用字符串的形式,也可以参考我之前一篇文章http://blog.csdn.net/luoluoxiaocainiao/article/details/9879839 里面的Add和Mul函数可以实现阶乘.
相关文章推荐
- ACM内部函数--数学问题--大数阶乘
- 【大数问题】大数阶乘
- 数学问题——用递归计算阶乘
- 求N的阶乘(求1000的阶乘)--大数问题
- 大数阶乘末尾0的个数问题 数字的奇妙
- 大数阶乘问题
- POJ-1423 计算出n的阶乘的位数大数问题[Stirling公式]
- 阶乘问题(大数阶乘)简单 n! (一个大数与一个小数相乘的算法 、一个大数与一个小数的除法算法 *【模板】 )
- OJ刷题--3.2.1 Factorials 阶乘(大数的存贮问题)
- nyoj.28 大数阶乘【大数问题】 2015/03/09
- ACM内部函数--数学问题--大数除法和取余
- ACM内部函数--数学问题--大数相减
- 【数学】大数整除单精问题
- 数学问题3:两个大数相乘
- Java杂记——大数操作(1000的阶乘问题)
- 大数阶乘问题!
- 大数阶乘问题研究
- 大数阶乘问题
- 大数问题——大数阶乘
- 大数阶乘问题