求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000 import java.math.BigInteger;
* 思路: 若想得到结果中数字0的个数,就要求出1000!的结果,然后转换成字符串用String类中的方法进行求解,
* 但是1000!的结果会超出我们基本数据类型的范围。于是就想到BigInteger类,在此利用BigInteger类的
*方法来求解
public class Test9 {
public static void main(String[] args) {
printNum();
}
public static void printNum() {
//创建BigInteger对象并初始化传入字符串1.
BigInteger bi = new BigInteger("1");
//for循环求1000!的结果
for (int i = 2; i <= 1000; i++) {
//把每个int类型的数据转换成字符串
String str = String.valueOf(i);
//把字符串类型数据转换成BigInteger类型
BigInteger bi2 = new BigInteger(str);
//利用multiply()求积
bi=bi.multiply(bi2);
}
//把结果转换成字符串类型的数据
String end = bi.toString();
//定义计数器
int count = 0;
//for循环遍历字符串
for (int i = 0; i <end.length(); i++) {
//没出现一次0,计数器就增加1
if (end.charAt(i) =='0') {
count++;
}
}
//打印输出结果
System.out.println("1000!的结果中包含"+count+"个0.");
}
}
|