- import java.math.*;
- /**
- * 第9题 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
- */
- public class Test9 {
- /*
- * 思路:
- * 1000!这种大数乘法,需要使用BigInteger
- * 先计算出1000!的结果,然后循环取出字符串中的字符,
- * 判断一共有多少个0.
- */
- public static void main(String[] args)
- {
- String jieChengRes = jieCheng().toString();
- prin("1000!的运算结果为:"+jieChengRes);
-
- int zeroCount = returnZeroCount(jieChengRes);
- prin("结果中一共包含: "+zeroCount+" 个零。");
- }
-
- //1.计算出1000!的结果。
- public static BigInteger jieCheng()
- {
- BigInteger result = new BigInteger("1");
-
- for (int i = 1; i <= 1000; i++)
- {
- BigInteger num = new BigInteger(String.valueOf(i));
-
- // 大数运算与基本数据类型不同,不能使用*运算符,用独有的multiply()方法
- result = result.multiply(num);
- }
-
- return result;
- }
-
- //循环取出字符串中的字符,并记录一共有多少个0.
- public static int returnZeroCount(String res)
- {
- int count = 0;
- for (int i = 0; i < res.length(); i++)
- {
- String str = String.valueOf(res.charAt(i));
- if(str.equals("0"))
- {
- count++;
- }
- }
- return count;
- }
- //换行打印通用方法
- public static void prin(Object obj)
- {
- System.out.println(obj);
- }
- }
复制代码
一切尽在代码之中~。 |