n ! 表示为n的阶乘,其中阶乘的定义是这样的:
若n为0,则有n ! = 0 ! = 1
若n为正整数,则有n ! = (n-1)! * n
例如4 ! = 4 * 3 * 2 * 1 = 24
可以发现阶乘这一运算的数值增长速度是非常快的,比如20!=
2432902008176640000 ,这个时候已经数字的长度已经达到了19位。幸好,现在我们的
任务不是计算出n的阶乘,而是只要计算出n!末尾0的个数就可以了。
输入格式
输入数据只会包含一个整数n
输出格式
输出中包含一个整数m,表示n!末尾0的个数
输入输出样例1
--------------------Input--------------------
4
--------------------Output--------------------
0
输入输出样例2
--------------------Input--------------------
20
--------------------Output--------------------
4
数据规模和约定
对于10%的数据,保证有n<=10
对于80%的数据,保证有n<=100000
对于100%的数据,保证有n<=10^9
阶乘数据较大,用BigInteger构造器来处理,乘法用multiply()这个函数。得到数据后转为字符串,便于处理判断,倒序遍历查找0的个数即可,具体看代码。
public class AL_636 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
BigInteger ans=BigInteger.ONE;//初始值,值为1
for (int i = 1; i <=n ; i++) {
ans=ans.multiply(BigInteger.valueOf(i));
} //将i转为BigInteger型
String a=String.valueOf(ans);//ans转为字符串
//String a=ans+"";也是一样的
int j=a.length()-1,sum=0;
while (a.charAt(j)=='0'){//倒序判断0的个数
sum++;
j--;
}
System.out.println(sum);
}
}