求阶乘(防止溢出)的方法
来源:互联网 发布:unity3d 安卓调试 编辑:程序博客网 时间:2024/05/18 03:40
思想是用整形数组来存储阶乘结果,每个数组内存储1位数字,下面的图比较能说明问题。
代码如下,以12作为测试用例,对最高位做了单独处理。(中间有关除10还是模10的问题要理清楚,不然容易出错)
public class Main {
public static void main(String[] args){ int a=12; jiecheng(a); } public static void jiecheng(int x){ int[] array=new int[10000]; array[0]=1; int bit=1; int carry=0; int i,j,k; for(i=2;i<=x;i++) { for (j = 0; j < bit; j++) { array[j] = array[j] * i; } for (j = 0; j < bit - 1; j++) { carry = array[j] / 10;//向下一位进位的值 array[j] = array[j] % 10; k = j; array[++k] += carry;//加上进位的结果, } if (array[bit - 1] >= 10) { int temp = array[bit - 1] / 10; array[bit - 1] = array[bit - 1] % 10; while (temp != 0) { array[bit] = temp % 10; temp = temp / 10; bit++;//将最高位的结果依次进位,并增加响应阶乘结果的位数 } } } for(i=bit-1;i>=0;i--){ System.out.print(array[i]); } }}
0 0
- 求阶乘(防止溢出)的方法
- 算法实现求n的阶乘(防止溢出)
- 一个防止溢出的求平均方法
- 求阶乘(考虑溢出)
- 求大数的阶乘方法(数组)
- 防止 Solaris 溢出的方法
- 求阶乘,下面的方法可以避免数据溢出,很值得学习。
- 部分防止Solaris溢出的方法
- 防止加载图片内存溢出的方法
- 用递归方法求n的阶乘(C语言)
- 在防止溢出的情况下求两个整数的平均数。(向下取整)
- 求大整数的阶乘的方法
- c语言实现求组合数(带点优化的思想,防止溢出)
- 用递归方法求n的阶乘。
- 求阶乘的几种方法
- 再来一种求大数阶乘的方法
- 再来一种求大数阶乘的方法
- 求阶乘的两种方法
- Java学习之List
- PHP设计模式(1)
- Java之枚举----小试牛刀练习
- Retrofit的使用【一】
- NAT(网络地址转换)(一)
- 求阶乘(防止溢出)的方法
- mysql 通过程序插入数据乱码问题
- Activiti的processEngineConfiguration的部分配置说明
- JS 之 预解释
- JSP使用<form>表单无法跳转时的一种解决办法
- 2017.05.02回顾 git stash
- 关于接口中全国和分省的判断
- PAT1045 快速排序
- R语言的igraph画社交关系图示例