用Java的大整数类BigInteger来实现大整数的一些运算
关于BigInteger的构造函数,一般会用到两个:
BigInteger(String val); //将指定字符串转换为十进制表示形式;
BigInteger(String val,int radix); 将指定基数的 BigInteger 的字符串表示形式转换为 BigInteger。
例如val是二进制字符串,想把它转换成十进制的BigInteger,可以这样写:
String val = "01101";
BigInteger s = new BigInteger(val, 2);
比较大小的时候要用到compareTo
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigInteger a, b;
while(sc.hasNext()) {
a = sc.nextBigInteger();
b = sc.nextBigInteger();
System.out.println(a.add(b)); //大整数加法
System.out.println(a.subtract(b)); //减法
System.out.println(a.multiply(b)); //乘法
System.out.println(a.divide(b)); //除法
System.out.println(a.remainder(b)); //取模
//大整数的比较
if(a.compareTo(b) == 0)
System.out.println("a == b");
else if(a.compareTo(b) > 0)
System.out.println("a > b");
else if(a.compareTo(b) < 0)
System.out.println("a < b");
//大整数的绝对值
System.out.println(a.abs());
//计算大整数的幂次方
int exp = 10;
System.out.println(a.pow(exp));
//返回大整数十进制的字符串表示
System.out.println(a.toString());
//返回大整数p进制的字符串表示
int p = 8;
System.out.println(a.toString(p));
}
sc.close();
}
}