最近学Java有接触到大数运算,感觉比用c++自己写个算法方便太多,在此记录下代码。
java中用于操作大数的类主要有两个,一个是BigInteger,代表大整数类,用于对大整数进行操作;另一个是BigDecimal,代表高精度类,用于对比较大或精度比较高的浮点型数据进行操作。两个比较像。
基本用法
1、新建一个值为123的大整数对象
1 2
| BigInteger a=new BigInteger(“123”); BigInteger a=BigInteger.valueOf(123);
|
2、大整数的四则运算
1 2 3 4
| a. add(b); a.subtract(b); a.divide(b); a.multiply(b);
|
3、大整数比较大小
1 2
| a.equals(b); a.compareTo(b);
|
4、常用方法
1 2 3 4
| a.mod(b); a.gcd(b); a.max(b); a.min(b);
|
例子
HDU1002 a+b
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import java.util.*; import java.math.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); BigInteger a, b, c; for( int i=1; i<=t; i++ ) { System.out.println("Case " + i + ":"); a = sc.nextBigInteger(); b = sc.nextBigInteger(); System.out.println(a + " + " + b + " = " + a.add(b)); if( i!=t ) { System.out.println(); } } } }
|