1.阶乘之乘
这道题是针对阶乘的,而找到末尾的0就是找到有多少个10连乘,而10都可以转换为2*5转换而来,而因为题目阶乘的性质,可以得到2的个数肯定比5多,此处可以仔细想一下,10的个数是由2和5之间少的个数决定的,于是只需要找到5的个数就好.
而为了优化时间复杂度,可以将阶乘的性质,将5的个数延续下去,这样避免重复计算5的个数代码如下
Code:
n = int(input()) #使用n
ans=0
s=0
for i in range(1,n+1): #
#使用了多少i
temp = i
while(temp%5==0):
temp/=5
s+=1 #使用s记录上一个数阶乘5的个数
ans+=s
print(ans)