再来一种求大数阶乘的方法
来源:互联网 发布:淘宝客服班培训多少钱 编辑:程序博客网 时间:2024/05/16 19:24
过多的我就不说了,直接看看代码:
java版的:
- /**
- *
- */
- package Factorial;
- /**
- * @author 牟尼(昵称)
- * @blog:http://blog.csdn.net/u012027907
- *
- */
- public class Factorial {
- /*
- * 大数阶乘计算类
- */
- /*
- * 分析:大数阶乘用数组来存储,如5的阶乘可存在数组cal[]中,表示为
- * 0 1 2 3
- *[3][0][2][7]
- *个位存阶乘的位数
- *要求5的阶乘,则要求得4!的结果,一直要求的1!的结果为1;
- *所以使用循环即可
- */
- /*
- * 大数阶乘计算
- */
- public String fac(int num){
- String result; //最终结果的字符串
- int max; //阶乘的位数
- double sum = 0;
- for(int i = 2; i <=num; i++){//计算阶乘的位数
- sum += Math.log10(i);
- }
- max = (int)sum +1;
- int cal[] = new int[max+1];//开辟空间
- for(int j = 1; j <= max; j++)
- cal[j] = 0;
- cal[0] = max; //cal[0]存储阶乘的位数
- cal[1] = 1;
- int g = 0;//进位
- for(int k = 2; k <= num; k++){//从2乘到num
- g = 0;
- for(int i =1; i <=max;i++){//计算每个k与数组相乘的结果
- cal[i] = cal[i]*k + g;
- g = cal[i]/10;
- cal[i] = cal[i]%10;
- }
- }
- result = "";
- for(int i = max; i > 0; i--)//将整型数组转为字符串
- result += cal[i];
- return result;
- }
- }
- 再来一种求大数阶乘的方法
- 再来一种求大数阶乘的方法
- 求大数的阶乘方法(数组)
- 求大数阶乘位数方法
- 求一个大数的阶乘
- 【java】求大数的阶乘
- HDU-求大数的阶乘
- java求大数的阶乘
- 一种计算大数阶乘的算法
- 一种求大数运算的方法,如5000!
- 大数阶乘的其他方法
- 求大数阶乘结果的位数
- 求n的阶乘,大数乘模版
- C语言 求一个大数的阶乘
- 求大数的阶乘有多少位
- 大数问题:求N的阶乘
- 另一种求大数阶乘的算法
- 另一种求大数阶乘的算法
- 常用算法之最大公约数与最小公倍数
- 精度数学,mysql
- java线程实例
- 系统学习Linux的十一点建议[转]
- 没有找到QtNetwork或者是无法打开QtNetwork 的解决方法
- 再来一种求大数阶乘的方法
- CSDN高校俱乐部全新改版,欢迎你的加入!
- KMP串匹配算法
- 在C++中如何将ActiveX控件所使用的BSTR数据转换成CHAR字符数组?
- 喝汽水问题
- 线索二叉树的实现
- 以前用c写的单片机通讯程序
- 使用winrar压缩分卷(csdn上传大资源使用)
- truncate和delete删除有外键约束的表