汇才同飞教育汇才同飞学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 201692310134 › 日志

蓝桥杯:阶乘位数

2019-08-03 10:20:28 查看(158) 回复(0)

9的阶乘等于:362880

它的二进制表示为:1011000100110000000

这个数字共有19位。

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

提示:在BigInteger类中查找合适的方法,可能有的方法没有在课堂上讲解过,需要自行查阅。

import java.math.BigInteger;
import java.util.*;

public class Main
{
     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;  
            }  
        }  
}

评论 (0 个评论)

facelist

全部作者的其他最新日志

站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, , Processed in 0.195171 second(s), 9 queries .

Powered by javakc! X1.0

© 2004-2014 javakc

返回顶部