蓝桥杯--第七届决赛:阶乘位数



阶乘位数

9的阶乘等于:362880
它的二进制表示为:1011000100110000000
这个数字共有19位。

请你计算,9999 的阶乘的二进制表示一共有多少位?



package 第七届决赛题;

import java.math.BigInteger;
public class 阶乘位数 {
	public static void main(String[] args) {
		BigInteger a=f(9999);
		String n=Integer.toBinaryString(a.intValue());
		System.out.println(a.bitLength());
	}
	public static BigInteger f(int n){
		if(n>1){
			return BigInteger.valueOf(n).multiply(f(n-1));
		}else{
			return BigInteger.ONE;
		}
	}
}


注意:需要提交的是一个整数,不要填写任何无关内容(比如说明解释等)

你可能感兴趣的:(数据结构--递归,蓝桥杯)