《用java来解决大数问题总结》
来源:互联网 发布:php格式怎么转换 编辑:程序博客网 时间:2024/04/28 04:20
好长时间没写过指导类型的文档了,大多都是把题目黏贴上来,然后放上代码,和一些解题思路。
今天就给大家讲一下ACM中出现的大数问题的解决方法。
在做ACM题目的时候,有时就会遇见特别大的数字,远远超过了long long定义的 类型,如果是用C语言的话,需要用到数组来做,做起来得不偿失。很幸运,有java这个类库强大的语言,我们可以通过调用库函数来解决大数问题。
在解决大数问题的时候,首先需要在Main.java中引入包:import java.math.BigInteger;这个包里边包含大数的所有库函数。下面给大家介绍下比较常用的库函数(其实大家也可以自己查API文档,里边有说明的= =、)。
定义一个大数:1、BigInteger a=BigInteger.valueOf(1);注意,此时a的值为1,a是一个大数。
2、BigInteger a;此时a尚未初始化,可以通过键盘输入一个大数:Scanner cin=new Scanner(System.in); a=cin.nextBigInteger();
大数的几个运算(假设此时有两个大数a,b):
加运算:a.add(b) 减运算a.subtract(b) 乘运算:a.multiply(b) 除运算:a.divide(b) 比较:a.compareTo(b);(a>b的话返回1)
比较是否相等:a.equals(b) 求最大公约数:a.gcd(b); 求模:a.remainder(b);
运算就说这么多,大家可以自己查API文档看看。
这里有一点特别需要注意:当你要让一个大数a和0比较是否相等的话,如果直接a.equals(0);这是错误的,你必须把0转变为大数:BigInteger b=BigInteger.valueOf(0);然后比较,a.equals(b)。这样才是正确的。
因为上面给出的所有运算中,括号内的数字必须为BigInteger类型的
文档可能描述不是太清晰,有什么疑问可以回复。
- 《用java来解决大数问题总结》
- 用java解决大数
- EASY_PAT_1065 用Java的BigInteger类解决大数问题
- 水题 hdu1002------用BigInteger解决大数问题
- 杭电1002用Java解决大数、
- java解决大数相加
- Java 解决大数问题 (hdu 1002 hdu 1212 )
- java 大数BigInteger总结
- JAVA 大数总结
- java写大数总结
- java 大数BigInteger总结
- java 大数BigInteger总结
- java大数BigInteger总结
- Java大数类解决大数加法
- java大数问题
- Java大数问题
- 关于java用阻塞队列解决生产者消费者问题总结
- java高精度、大数运算总结
- 动态规划小结
- 修复Linux引导(二):unknown filesystem,引导菜单无法启动系统,使用LiveCD修复
- 【DFS】Combinations
- Double Maze
- 闲扯LUA之二
- 《用java来解决大数问题总结》
- JavaScript关于闭包,匿名函数,this,对象等的一些理解
- Java实现FTP上传下载文件
- c++中 子类父类的构造函数调用顺序
- 字符串处理--HDU第1073解题报告
- mysql主从遇到问题
- linux命令系列之grep
- QtCreator使用时需要注意的一个地方。
- HDU 2594 Simpsons’ Hidden Talents(KMP)