살아가는 이야기
Java의 BigInteger 사용법(Using BigInteger in Java) 본문
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