思路:n!= 1*2*3*...*n;我们要分析一下0是怎么来的,0是2*5得来的,那也就是说看有多少个2,5就可以了,
再分析,因子2出现的次数,2,4,6,8...,因子5出现的次数,5,10,15,25...
很显然,2出现的次数一定是比5出现的次数多的,那么我们只需要计算5出现的次数有多少,就可以得到会有多少个10,也就是会有多少个0了。所以思路就是,遍历1-n,求每个数中因子5的个数,加加加,就ok了。
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int N=in.nextInt();
System.out.println(countZero(N));
}
private static int countZero(int n) {
int count=0;
for (int i=n;i>5;i--){
int temp=i%5;
while (temp==0){
count++;
temp/=5;
}
}
return count;
}
}