JAVA 대수 처리 (BigInteger, BigDecimal)

5106 단어 수론
자바 에는 두 가지 종류 가 있 는데 BigInteger 와 BigDecimal 은 각각 큰 정수 류 와 큰 부동 소수점 류 를 나타 낸다.
이 두 종 류 는 모두 자바. math. * 가방 에 있 기 때문에 매번 시작 부분 에서 이 가방 을 참조 해 야 합 니 다.
I 기본 함수:
1.valueOf(parament);//매개 변 수 를 제 정 된 형식 2. add () 로 변환 합 니 다.           //큰 정수 에 3. subtract () 를 더 합 니 다.     //상 감 4. multiply ();     //곱 하기 5. divide ();       //6. remainer () 를 제거 합 니 다.     //7. pow () 를 남 깁 니 다.           //a.pow(b)=a^b 8.gcd();            //최대 공약수 9. abs ();           //절대 값 10. negate ();       //역수 11. mod () 가 져 오기;         //a.mod(b)=a%b=a.remainder(b); 12.max(); min(); 13.public int comareTo(); 14.boolean equals();//같은 15.//BigInteger 구조 함수 여부:    BigInteger(String val);    //지정 한 문자열 을 10 진 표시 형식 으로 변환 합 니 다.    BigInteger(String val,int radix);    //지정 한 기수 의 BigInteger 문자열 표시 형식 을 BigInteger 로 변환 합 니 다.
II. 기본 상수: A = BigInteger. ONE   1 B=BigInteger.TEN    10 C=BigInteger.ZERO   0
Ⅲ. 기본 동작 - 읽 기와 출력 은 Scanner 류 정의 대상 으로 콘 솔 에서 읽 습 니 다. Scanner 류 는 자바 util. * 패키지 에 있 습 니 다.
Scanner cin=new Scanner(System.in);// 读入
while(cin.hasNext())   //等同于!=EOF
{
   int n;
   BigInteger m;
   n=cin.nextInt(); //读入一个int;
   m=cin.BigInteger();//读入一个BigInteger;
System.out.print(m.toString());
}

Ⅳ. 사 칙 연산:
import java.util.Scanner;
import java.math.*;
import java.text.*;
public class Main {
    public static void main(String args[]) {
       Scanner cin = new Scanner ( System.in );
       BigInteger a,b;
       int c;
       char op;
       String s;
      
       while( cin.hasNext() ) {
            a = cin.nextBigInteger();
            s = cin.next();
            op = s.charAt(0);
            if( op == '+') {
                b = cin.nextBigInteger();
                System.out.println(a.add(b));
            }
            else if( op == '-') {
                b = cin.nextBigInteger();
                System.out.println(a.subtract(b));
            }
            else if( op == '*') {
                b = cin.nextBigInteger();
                System.out.println(a.multiply(b));
            }
            else {
                BigDecimal a1,b1,eps;
                String s1,s2,temp;
                s1 = a.toString();
                a1 = new BigDecimal(s1);
                b = cin.nextBigInteger();
                s2 = b.toString();
                b1 = new BigDecimal(s2);
                c = cin.nextInt();
                eps = a1.divide(b1,c,4);
                //System.out.println(a + " " + b + " " + c);
                //System.out.println(a1.doubleValue() + " " + b1.doubleValue() + " " + c);
                System.out.print( a.divide(b) + " " + a.mod(b) + " ");
                if( c != 0) {
                    temp = "0.";
                    for(int i = 0; i < c; i ++) temp += "0";
                    ecimalFormat gd = new DecimalFormat(temp);
                    System.out.println(gd.format(eps));
                }
                else System.out.println(eps);
            }
        }
    }
}

구체 적 인 설명:
1.valueOf(parament); 매개 변 수 를 제 정 된 형식 으로 변환 합 니 다.    예 를 들 어 int a = 3;    BigInteger b=BigInteger.valueOf(a);     b = 3;    String s=”12345”;     BigInteger c=BigInteger.valueOf(s);     c = 12345;2.add(); 큰 정수 를 더 하 다    BigInteger a=new BigInteger(“23”);     BigInteger b=new BigInteger(“34”);     a.add(b); 3.subtract(); 상 감 4. multiply ();곱 하기 5. divide ();   6. remainer () 를 제거 합 니 다.7. pow () 를 남 깁 니 다.  a.pow(b)=a^b 8.gcd();   최대 공약수 9. abs ();절대 값 10. negate ();역수 11. mod () 가 져 오기;a.mod(b)=a%b=a.remainder(b); 12.max(); min(); 13.public int comareTo();          반환 - 1, 0 또는 1, 각각 BigInteger 는 숫자 적 으로 작 거나 같 거나 값 val 보다 크다.14.boolean equals(); 15. BigInteger 구조 함수 와 같 을 지 여부:    일반적으로 다음 과 같은 두 가 지 를 사용한다.    BigInteger(String val);     지정 한 문자열 을 10 진 표시 형식 으로 변환 합 니 다.    BigInteger(String val,int radix);     지정 한 기수 의 BigInteger 문자열 표시 형식 을 BigInteger 보충 으로 변환 합 니 다.    a=a.pow(b);  //a = a 의 b 제곱    a=a.stripTrailingZeros();  //후 도 를 제거 하 다      d=a.toPlainString();//과학 계수 법의 표현법 이 되 지 않도록 일반적인 소수 로 표시 하 다    if(d.charAt(0)=='0') d=d.substring(1);//선도 문자열 과 비교 ??     if(s.startsWith("0.")) s=s.substring(1);//선도 문자열 과 비교 ??      and();//예 를 들 어 a. and (b), a & b 계산    doubleValue();  //double 형식 으로 전환    longValue();  //log 형식 으로 전환    floatValue();  //float 형식 으로 전환    intValue();  //int 형식 으로 변환    divideAndRemainder(BigInteger val)        //(this/val) 뒤꿈치 (this% val) 를 포함 하 는 두 개의 BigInteger 배열 을 되 돌려 줍 니 다.    boolean isProbablePrime(BigInteger n)  //대수 가 소수 인지 아 닌 지 를 판단 하 다       modPow(BigInteger n, BigInteger mod)  //계산 this ^ n% mod    nextProbablePrime(BigInteger n)  //대수 n 보다 큰 소수 로 되 돌아 가기    not()  //계산 하 다. ~this     or(BigInteger a)  //계산 this | a    xor(BigInteger val)    //값 이 (this ^ val) 인 BigInteger 를 되 돌려 줍 니 다.    probablePrime(int bitLength, Random rnd)       //소수 일 수도 있 고 지 정 된 길이 의 정 BigInteger 를 되 돌려 줍 니 다.    shiftLeft(int n)    //값 이 (this < n) 인 BigInteger 를 되 돌려 줍 니 다.    shiftRight(int n)    //값 이 (this >> n) 인 BigInteger 를 되 돌려 줍 니 다.

좋은 웹페이지 즐겨찾기