A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鲤鱼仙 中级黑马   /  2015-7-7 23:34  /  289 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
关于这个问题的解决 有好多思路  由于数学不太好 我写一个笨方法
那就是把1000!的结果求出来  然后我们在查找里面有多少个0 这样我们就好些了
public class Test {
        public static void main(String[] args) {
                //调用求阶乘的方法
                BigInteger sum1 = jieCheng(1000);
                //拿到了结果 这个时候他是一个BigInteger类型  
                //System.out.println(sum);
                //调用求0个数的方法
                int sum = sum(sum1);
                //输出
                System.out.println("1000! 的结果中 0 的个数有"+sum+"个.");

        }
        public static BigInteger jieCheng(int i){
                //定义一个变量来接收 计算的结果 肯定超大用BigInteger
                BigInteger num = new BigInteger("1") ;
               
                for (int j = 0; j < i; j++) {
                        num = num.multiply(new BigInteger(String.valueOf((j+1))));
                }
                return num;
        }
        public static int sum(BigInteger bg){
                //定义一个 遍历来接收0的个数
                int sum = 0;
                //将BigInteger 转成字符串类型
                String str = bg.toString();               
                for (int i = 0; i < str.length(); i++) {
                        if (str.charAt(i)=='0') {//把i当字符串str的索引
                                sum++;
                        }
                }
                return sum;
        }
}


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马