题目描述
求N的阶乘末尾存在多少个0。
输入
输入存在多组测试数据,对于每组测试数据输入一个整数N(0<=N<=10^9)
输出
对于每组测试数据,输出一行表示答案。
样例输入
12
20
样例输出
2
4
题目分析,由于2*5=10,2的数量比5的数量多,所以只需统计5的数量即可,一个数的阶乘中,5的因子的数量是n/5,而有些数可以被5除多次,所以使用递归。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while (sc.hasNext()){
System.out.println(countfive(sc.nextInt()));
}
}
private static int countfive(int n) {
return (n<5)?0:n/5+countfive(n/5);
//用三目表达式判断,如果传入的<5就是0,如果>5就/5,并且加函数值。
}
}