- package com.itheima;
- import java.math.BigInteger;
- /*
- * 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
- *
- * 思路:
- * 1.利用for循环计算出1000!的结果,考虑到该值太大,所以使用BigInteger类型进行接收
- * 2.将计算出的结果转换成字符串,再转换成字符数组
- * 3.判断每一字符是否为'0',计算出最终0的个数
- *
- */
- public class Test9 {
- public static void main(String[] args) {
- // 定义一个BigInteger类型变量i,用于存储最终计算的1000!的值,初始值为1
- BigInteger i = new BigInteger("1");
- // 利用for循环计算出最终的1000!的值
- for (int j = 2; j < 1001; j++) {
- i = i.multiply(BigInteger.valueOf(j));
- }
- // 利用BigInteger中的toString方法将i转换成String类型
- String str = i.toString();
- // 利用String类中的toCharArray方法将1000!结果中的每一个数存储到一个字符数组中
- char[] ch = str.toCharArray();
- // 利用否循环遍历并判断每一个字符是否为'0',为'0'则计数器+1;
- int count = 0;// 定义一个计数器,用于纪录结果中0出现的次数
- for (int j = 0; j < ch.length; j++) {
- if (ch[j] == '0') {
- count++;
- }
- }
- // 输出打印最终计算出的结果
- System.out.println("在1000!的结果中0出现的次数为:" + count + "次!");
- }
- }
复制代码 |