黑马程序员技术交流社区

标题: 求有多少个0 [打印本页]

作者: 鲤鱼仙    时间: 2015-7-7 23:34
标题: 求有多少个0
求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;
        }
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2