求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;
}
}
|
|