题目要求
9的阶乘等于:362880
它的二进制表示为:1011000100110000000
这个数字共有19位。
请你计算,9999 的阶乘的二进制表示一共有多少位?
代码
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
int count = 0;
BigInteger x = BigInteger.ONE;//x很大,所以定义为BigInteger
for(int i=1;i<=9999;i++) {
x=x.multiply(BigInteger.valueOf(i));//把i依次赋值给BigInteger,相当于阶乘操作
}
String str=x.toString(2);转为二进制。toString默认是十进制
System.out.println(str.length());
}
}