用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();
	}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM