试题 算法训练 阶乘
资源限制
内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s
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
代码如下:
n=int(input())
b=0
a=1
for i in range(1,n+1):
a*=i
a=list(str(a))
for j in a[::-1]:
if j=='0':
b+=1
else:
break
print(b)
或则直接法
n=int(input())
b=0
a=list(range(1,n+1))
for x in a:
if x%5==0:
b+=1
print(b)