Java学习之ACM中使用大数类的基础方法及入门教程
2016-04-03 16:45
916 查看
ACM中的大数问题用Java的大数类敲方便快捷,而且极其容易上手!!!
本节针对java的大数类在ACM中的用法做简单的讲解。
如对Java中的一些基础用法不了解的去前一节看看~
/article/9801789.html
资料均注明来源,侵删!
1.简介:
Java中两个类BigDecimal(表示浮点数)和BigInteger(表示整数);
分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数)。
主要用于高精度计算中。这两个类使得java中的大数,高精度运算变得很简单。
使用时注意每个单词首字母大写~新手很容易犯这个错/(ㄒoㄒ)/~~
使用这两个类的时候需要加上包 import java.math.*;
或是直接打:
2.声明与赋值
通常以这种方法声明:
也可将声明和赋值写在一起:
还有常用的常量赋值方法:
相当于:
valueOf(),可将数据转换为指定类型:
具体用法如下;
2.输入方法:
主要是Scanner类,具体参见上一节内容/article/9801789.html
不在此赘述了;
例:
例引: http://m.2cto.com/kf/201312/265886.html
3.一些基础运算:
add();//
substract(); //减法
multiply(); //乘法
divided(); //相除取整
remainder(); //取余
pow(); //a.pow(b) = a ^ b
gcd(); //最大公约数
abs(); //绝对
negate(); //取反数
mod(); //a.mod(b) = a % b = a.remainder(b)
max(); min();
compareTo(); //比较
equals(); //比较是否相等
a+b的例子:
a+b浮点数的例子:
注意注释中所提到的两个说明!!!
Java大数的一些基础用法就是这些,下面还有几篇典型例题。
仅代表个人观点,欢迎交流探讨,勿喷~~~
PhotoBy:WLOP
http://weibo.com/wlop
本节针对java的大数类在ACM中的用法做简单的讲解。
如对Java中的一些基础用法不了解的去前一节看看~
/article/9801789.html
资料均注明来源,侵删!
1.简介:
Java中两个类BigDecimal(表示浮点数)和BigInteger(表示整数);
分别表示不可变的任意精度的整数和不可变的有符号的任意精度的十进制数(浮点数)。
主要用于高精度计算中。这两个类使得java中的大数,高精度运算变得很简单。
使用时注意每个单词首字母大写~新手很容易犯这个错/(ㄒoㄒ)/~~
使用这两个类的时候需要加上包 import java.math.*;
或是直接打:
import java.math.BigInteger; import java.math.BigDecimal;
2.声明与赋值
通常以这种方法声明:
BigInteger a; BigDecimal b;
也可将声明和赋值写在一起:
BigDecimal a=new BigDecimal("0");
还有常用的常量赋值方法:
A=BigInteger.ONE //=1 B=BigInteger.TEN //=10 C=BigInteger.ZERO //=0
相当于:
BigInteger A = BigInteger.valueOf(1); BigInteger B = BigInteger.valueOf(10); BigInteger C = BigInteger.valueOf(0);
valueOf(),可将数据转换为指定类型:
具体用法如下;
int a = 3; BigInteger b = BigInteger.valueOf(a); //即b = 3;(int)
2.输入方法:
主要是Scanner类,具体参见上一节内容/article/9801789.html
不在此赘述了;
例:
while(cin.hasNext()) //等同于!=EOF { int n; BigInteger m; n=cin.nextInt(); //读入一个int; m=cin.BigInteger();//读入一个BigInteger; System.out.print(m.toString()); System.out.print(m); }
例引: http://m.2cto.com/kf/201312/265886.html
3.一些基础运算:
add();//
substract(); //减法
multiply(); //乘法
divided(); //相除取整
remainder(); //取余
pow(); //a.pow(b) = a ^ b
gcd(); //最大公约数
abs(); //绝对
negate(); //取反数
mod(); //a.mod(b) = a % b = a.remainder(b)
max(); min();
compareTo(); //比较
equals(); //比较是否相等
a+b的例子:
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { BigInteger a, b; int T; Scanner in = new Scanner(System.in); T = in.nextInt(); for (int i = 1; i <= T; ++i) { System.out.println("Case" + " " + i + ":"); a = in.nextBigInteger(); b = in.nextBigInteger(); if (i < T) { System.out.println(a + " + " + b + " = " + a.add(b) ); System.out.println(); } else { System.out.println(a + " + " + b + " = " + a.add(b)); } } } }
a+b浮点数的例子:
import java.util.*; import java.math.*; public class Main{ public static void main(String []args){ BigDecimal a; BigDecimal b; a=new BigDecimal("0"); b=new BigDecimal("0"); Scanner cin=new Scanner(System.in); while(cin.hasNext()) { a=cin.nextBigDecimal(); b=cin.nextBigDecimal(); a=a.add(b); String str=a.stripTrailingZeros().toPlainString(); //stripTrailingZeros()这个方法是用来去掉末尾的0的。 //toPlainString()这个方法是使字符串大数变成普通的数字字符组成的字符串, //如果不使用这个方法很可能数字变成了科学计数法,带E的那种。 System.out.println(str); } } }
注意注释中所提到的两个说明!!!
Java大数的一些基础用法就是这些,下面还有几篇典型例题。
仅代表个人观点,欢迎交流探讨,勿喷~~~
PhotoBy:WLOP
http://weibo.com/wlop
相关文章推荐
- java如何得到GET和POST请求URL和参数列表
- 【Java】豆机
- Java回调机制解析
- Maven+Spring+SpringMVC+MyBatis框架的搭建(二)
- java 学习心得
- MyEclipse build path no actions available
- SpringMvc的数据校验
- 【Java】求系统当前时间
- Struts2环境搭建
- java虚拟机HotSpot中的垃圾收集器
- java学习笔记(五)
- Java对XML文档的解析
- 与时俱进的Java——《写给大忙人看的Java核心技术》
- RxJava-创建Observable操作符
- JAVA虚拟机-JVM性能调优(五)
- Kafka集群搭建及简单使用(控制台与Java客户端)
- Java学习之ACM相关基础知识
- [Java]不同包的类之间的继承
- 第五章 springboot + mybatis
- J2EE 日志错误