曾经面试碰到的一个题目,求1000的阶乘。
由于int,long,double的取值范围达不到,所以只能用java给提供的BigInteger数据类型。
import java.math.BigInteger;
/**
* 求1000的阶乘
* @author kevin
*
*/
public class Factorial {
public static void main(String[] args) {
System.out.println(method(1000));
}
public static BigInteger method(int n) {
if (n < 1) {
System.out.println("error");
return new BigInteger("0");
} else if (n == 1) {
return new BigInteger("1");
} else {
return method(n - 1).multiply(
new BigInteger(new Integer(n).toString()));
}
}
}