题目:
求一个数阶乘后的结果中末尾有几个0
输入:
属于一个整数n(0
import java.math.BigDecimal;
import java.util.Scanner;
public class Main09 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int n = scanner.nextInt();
BigDecimal result = factorial(n);
System.out.println(zeroNums(result));
}
}
public static BigDecimal factorial(int n){
BigDecimal result = new BigDecimal(1);
BigDecimal a;
for(int i = 2; i <= n; i++){
a = new BigDecimal(i);//将i转换为BigDecimal类型
result = result.multiply(a);//不用result*a,因为BigDecimal类型没有定义*操作</span><span>
}
return result;
}
public static int zeroNums(BigDecimal result){
int count = 0;
String str = result.toString();
for(int i=str.length()-1;i>=0;i--){
if(str.charAt(i)!='0'){
break;
}
count++;
}
return count;
}
}
测试用例:
10
输出:
2