package com.itheima;
import java.math.BigInteger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000
*
* 思路:1.使用java中的处理大数的类将阶乘计算的结果转换成字符串的形式
* 2.然后使用正则表达式将字符串中的0的个数匹配出来
* @author xiajie
*
*/
public class Test9 {
public static void main(String[] args) {
System.out.println(zeroNum(jiecheng(1000)));
}
//求出阶乘,以字符串形式返回结果
public static String jiecheng(int x){
BigInteger result = new BigInteger("1");
for(int i = 1;i<=x;i++){
result = result.multiply(new BigInteger(String.valueOf(i)));
}
return result.toString();
}
//用来根据计算后的字符串求出有多少个0
public static int zeroNum(String string){
int count = 0;
String regex = "";//正则表达是式的形式规则
Pattern parttern = Pattern.compile(regex);//实例化Pattern对象
Matcher matcher = parttern.matcher(string);//实例化Matcher对象
//根据正则的的规则来查找字符串中符合的字符
while(matcher.find()){
count++;
}
return count;
}
}