基本用不到-JAVA大數模板整理

 

基本開頭

import java.math.*;
import java.util.*;
public class Main {
	public static void main(String args[])
	{
		Scanner cin=new Scanner(System.in);//創建輸入
		BigInteger a=cin.NextBigInteger();//輸入
	}

}

 

 

 

EOF:用法

 

普通的數:while(cin.hasNextInt())              

//等同於!=EOF,第一數一定要輸入整形的

 

大數的一般是:while(cin.hasNextBigInteger()) 

//第一個數一定要輸入大數

 

System.out.print(m.toString());    //輸出                  

//m.toString()  將m轉爲String 類  

 

 

 

 

大數用法(整數)

 

定義

 

BigInteger []a=new BigInteger[100];  //數組

BigInteger a=new BigInteger("1");    //賦值

a= new BigInteger(""+b);             //b是int類型的

 

 

 

 

運算

//d爲int型,a,b,c都爲大數 

c=a.add(b);           // 相加 

c=a.subtract(b);      //   相減 

c=a.multiply(b);      // 相乘 

c=a.divide(b);        // 相除取整 

c=a.gcd(b);           //  最大公約數 

c=a.remainder(b);     //  取餘 

c=a.mod(b);           // a mod b 

c=a.abs();            // a的絕對值 

c=a.negate();         //a的相反數 

c=a.pow(d);           // a的b次冪   d爲int型     

c=a.max(b);           // 取a,b中較大的 

c=a.min(b);           // 取a,b中較小的 

d=a.compareTo(b);     // 比較a與b的大小d=-1小於,d=0等於,d=1大於,d爲int型 

a.equals(b);          // 判斷a與b是否相等   相等返回true  不相等返回false   

轉換

d=a.intValue();      // 將大數a轉換爲 int 類型賦值給 d 

e=a.longValue();     //  將大數a轉換爲  long 類型賦值給 e 

f=a.floatValue();    //  將大數a轉換爲  float 類型賦值給 f 

g=a.doubleValue();   //  將大數a轉換爲  double 類型賦值給 g 

s=a.toString();      // 將大數a轉換爲 String 類型賦值給 s 

s=a.toPlainString();  //將大數a轉換爲String類型賦值給s,且不表示爲科學計數法

a=BigInteger.valueOf(e);  // 將 e 以大數形式賦值給大數 a (e只能爲long或int )

a=newBigInteger(s,d);  // 將s數字字符串以d進制賦值給大數a如果d=s字符數字的進制則等同於將數字字符串以大數形式賦值給大數a 

 

 

 

進制

String st = Integer.toString(num, base);
//把int型num當10進制的數轉成base進制數存入st中 (base <= 35). 




int num = Integer.parseInt(st, base);

//把st當做base進制,轉成10進制的int 

(parseInt有兩個參數,第一個爲要轉的字符串,第二個爲說明是什麼進制).   

 

BigInteger m = new BigInteger(st, base); // st是字符串,base是st的進制. 

BigInteger a; 

int b; 

String c; 

a=cin.nextBigInteger(b);  //以b進制讀入一個大數賦值給a 

c=a.toString(b);          // 將大數a以b進制的方式賦給字符串c 

a=newBigInteger(c,b);    //把c 當做“b進制“轉爲十進制大數賦值給a 

 

PS.

每次使用String進行單個字符操作時

需要先

 

String s;

char[] c=s.toCharArray();

 

大數用法(浮點數)

 

定義

    String a = "1";
    String b = "4.56";
    BigDecimal aBD = new BigDecimal(a);
    BigDecimal bBD = new BigDecimal(b);
    BigDecimal resultBD = aBD.divide(bBD).setScale(3, java.math.BigDecimal.ROUND_HALF_UP);
    //3是保留小數,ROUND_HALF_UP是四捨五入
    //優先使用String而不是Double構造BigDecimal
    //加減乘除參照大整數運算

除法時的舍入控制

ROUND_CEILING    //向正無窮方向舍入

ROUND_DOWN    //向零方向舍入

ROUND_FLOOR    //向負無窮方向舍入

ROUND_HALF_DOWN    //向(距離)最近的一邊舍入,除非兩邊(的距離)是相等,如果是這樣,向下舍入, 例如1.55 保留一位小數結果爲1.5

ROUND_HALF_EVEN    //向(距離)最近的一邊舍入,除非兩邊(的距離)是相等,如果是這樣,如果保留位數是奇數,使用ROUND_HALF_UP,如果是偶數,使用ROUND_HALF_DOWN

ROUND_HALF_UP    //向(距離)最近的一邊舍入,除非兩邊(的距離)是相等,如果是這樣,向上舍入, 1.55保留一位小數結果爲1.6

ROUND_UNNECESSARY    //計算結果是精確的,不需要舍入模式

ROUND_UP    //向遠離0的方向舍入

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章