살아가는 이야기

Java의 BigInteger 사용법(Using BigInteger in Java) 본문

컴퓨터, 풀어그림

Java의 BigInteger 사용법(Using BigInteger in Java)

우균 2014. 11. 25. 04:50

Java의 BigInteger를 이용하면 오버플로우 없이 계산을 할 수 있다. 하지만 사용법이 까다로워 잘 모르는 사람들이 많은 것 같다. BigInteger를 이용하여 계승(factorial)을 구하는 프로그램을 예로 들면 다음과 같다.

import java.math.*;
public class FactorialBig {
    public static BigInteger factorial(BigInteger n) {
        if (n.equals(BigInteger.ZERO))
            return BigInteger.ONE;
        else
            return n.multiply(factorial(n.subtract(BigInteger.ONE)));
    }

    public static void main(String[] args) {
        for (int n = 0; n < 20; n++) {
            BigInteger f = factorial(new BigInteger(new Integer(n).toString()));
            System.out.printf("factorial(%2d) = %20s%n", n, f.toString());
        }
    }
}

배경에 깔린 아이디어는 문자열로 계산하는 것이다. 그래서 새로운 BigInteger 객체를 생성할 때도 문자열을 이용하여 생성한다.


Comments