您的位置:首页 > 其它

求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000

2015-01-15 18:49 381 查看
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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: