首页 > 试题广场 >

求表达式 f(n)结果末尾0的个数

[编程题]求表达式 f(n)结果末尾0的个数
  • 热度指数:3038 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个自然数n,求表达式 f(n) = 1!2!3!.....n! 的结果末尾有几个连续的0?

输入描述:
自然数n


输出描述:
f(n)末尾连续的0的个数
示例1

输入

11

输出

9
n=int(input())
res,pre1=0,0
for i in range(5,n+1):
    while i%5==0:
        i=i//5
        pre1=pre1+1
    res+=pre1
print(res)
发表于 2020-06-23 22:51:23 回复(0)
n = int(input())
c = 0
for i in range(1, n+1):
    if i >= 5:
        for j in range(1, 10):
            c = c + i//(5**(j))
            if i < (5**(j+1)):
                break
print(c)
1、对于n!来说,素因子5的个数就是n!末尾0的个数,计算公式是n/5+n/5^2 + n/5^3... 
2、累加
发表于 2020-05-04 16:33:27 回复(0)
# Python3 --- 完全通过版

# 求n!末尾有多少个0?
def get_0_number(n):
    if n<5:
        return 0
    else:
        n //= 5
        return n + get_0_number(n)

# 主函数
if __name__ == '__main__':
    try:
        while True:
            n = int(input())
            res = 0
            for i in range(1,n+1):
                res += get_0_number(i)
            print(res)
    except ValueError:
        pass

编辑于 2019-05-12 15:03:17 回复(0)