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