您的位置:首页 > 其它

大数的阶乘位数

2018-03-29 17:41 225 查看
点击打开链接https://blog.csdn.net/liutaotaotaotaotao/article/details/72191122
点击打开链接https://blog.csdn.net/nanYangTangHeGuoTan/article/details/71280273
1阶乘位数9的阶乘等于:362880它的二进制表示为:1011000100110000000这个数字共有19位。 请你计算,9999 的阶乘的二进制表示一共有多少位? 注意:需要提交的是一个整数,不要填写任何无关内容(比如说明解释等)
首先想到十进制转二进制的整除2倒取余,然后就很容易推断处下边的结论 

 [java] view plain copypublic class Main {  
    public static void main(String[] args) {  
        int m = 9999;  
        double temp,r=0;  
        for (int i = m; i > 1; i--) {  
            temp = Math.log(i) / Math.log(2);  
            r += temp;  
        }  
        System.out.println((int)r+1);  
    }  
}  

 运行结果:118445

阶乘位数9的阶乘等于:362880
它的二进制表示为:1011000100110000000
这个数字共有19位。请你计算,9999 的阶乘的二进制表示一共有多少位?注意:需要提交的是一个整数,不要填写任何无关内容(比如说明解释等)
[java] view plain copyimport java.math.BigInteger;  
  
public class Main {  
  
    public static void main(String[] args) {  
        BigInteger aBigInteger= lt_function(9999);  
        System.out.println(aBigInteger.bitLength());  
    }  
    public static BigInteger lt_function(int n){  
        if(n>1){  
            return BigInteger.valueOf(n).multiply(lt_function(n-1));  
        }else {  
            return BigInteger.ONE;  
        }  
    }  

结果:118445
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: