HW—可怕的阶乘n!__注意大数据函数的使用BigInteger
2015-08-16 21:46
375 查看
java.math.BigInteger系列教程(四)BigInteger的诞生原因
为什么java里面要出现BigInteger类型呢?相信很多人有这个疑问,其实原因很简单,它可以表达更大范围的数值,远远比long表示的最大值还要大的多数。在整数类型里面,long可以表达最大值,如下所示:1 2 3 4 5 6 7 | public class Test { public static void main(String[] args) { System.out.println(Long.MAX_VALUE); } } |
而使用BigInteger,则可以表示更大的值,理论上只要你内存足够大,就能,如下面的例子:
1 2 3 4 5 6 7 8 9 10 | public class Test { public static void main(String[] args) { BigInteger a= BigInteger.valueOf(9223372036854775807L); BigInteger b= BigInteger.valueOf(9223372036854775807L); BigInteger c=a.add(b); System.out.println(c.toString()); } } |
因为BigInteger没有重载"+","-","*",“/”, “%”这五个运算操作符,是不能直接进行数据运算的,需要调用它的相应方法:add,subtract,multiply,divide,remainder。
Java版本的是:
package t0816; import java.math.BigInteger; public final class BigN { public static BigInteger multiply(BigInteger m,int n) { BigInteger sn = new BigInteger(Integer.toString(n)); BigInteger sqy = m.multiply(sn); //大数据的加减乘除用的是add、subtract、multiply、divide,remainder。 return sqy; } public static String calcNN(int n) { if(n >= 0){ BigInteger one = new BigInteger(Integer.toString(1)); //1的初始化 for(int i=1;i <= n;i++) { one = multiply(one,i); //调用上面的累成函数;大数据的累成 } return one.toString(); } else return null; } public static void main(String arg[]) { //主函数 System.out.println(calcNN(13)); //这里直接装的13; } }
输出:6227020800
相关文章推荐
- 带参数的main函数的使用
- 【2014 Multi-University Training Contest 2 1002】/【HDU 4873】 ZCC Loves Intersection
- atitit.(设计模式1)--—职责链(chain of responsibility)最佳实践O7 转换日期
- hdu1788 Chinese remainder theorem again 最小公倍数
- HDU 4630-No Pain No Game(线段树+离线处理)
- ntfs mount fail after upgrade win10
- Hadoop FSDataInputStream 和FSDataOutputStream 用法
- 来自大数据的反思:需要你读懂的10个小故事
- error LNK2019: 解析的外部符号 __imp__DispatchMessageW@4,在函数的符号 _WinMain@16 据引述
- HDU 1848(sg博弈) Fibonacci again and again
- 大数据算法学习笔记(五):生成树权重
- 2015 HUAS Summer Trainning #5 E
- hdu 5386 Cover 脑洞 +有点贪心 2015 Multi-University Training Contest 8
- 2015 HUAS Summer Trainning #5 C
- 2015 HUAS Summer Trainning #5 B
- HDU 4303 Hourai Jeweled 树dp 所有权利和航点 dfs2次要
- A7139 无线通信驱动(STM32) 增加FIFO扩展模式,可以发送超大数据包
- UltraISO制作U盘启动盘安装Win7/10系统攻略
- 2015 Multi-University Training Contest 8 hdu 5383 Yu-Gi-Oh!
- Moo University - Financial Aid