思路:
每一对(2,5)就会产生一个0,将问题转换为:n!有多少对(2,5)
进一步将问题简化为:
n!拆分成的因子中有多少个5(为什么是5,不是2,是因为2出现的频率比5高)
解法1:效率低,时间复杂度为N*logN

public static int zeroNum1(int num){
        if(num<5){
            return 0;
        }
        int res=0;
        int cur=0;
        for(int i=5;i<=num;i=i+5){
            cur=i;
            while(cur%5==0){
                res++;
                cur=cur/5;
            }
        }
        return res;
    }

解法2:注意: long m=sc.nextLong();

import java.util.Scanner;
public class Main {

    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
            long m=sc.nextLong();
        System.out.print(zeroNum2(m));

    }

    public static long zeroNum2(long num){
        if(num<1){
            return 0;
        }
        long res=0;
        while(num!=0){
            res=res+num/5;
            num=num/5;
        }
        return res;
    }

}