k 阶乘尾数零的个数

问题:

        100!的尾数有多少个零?

思路:

        先求出100!的值,然后数一下末尾有多少个零。事实上,与上题 k的 n 次方的最后三位数 一样,由于计算机所能表示的整数范围有限,这是不可能的。

        一个整数若含有一个因子5,则必然会在求100!时产生一个零。因此问题转化为求1到100这100个整数中包含了多少个因子5。若整数N能被25整除,则N包含2个因子5;若整数N能被5整除,则N包含1个因子5。

def countOf5(n):
    count = 0
    while(n%5 == 0):
        n = n/5
        count = count+1
    return count
def numberOfEnd0(N):
    ans = 0
    for i in range(5,N+1,5):
        ans = ans + countOf5(i)
    return ans
print(numberOfEnd0(50))

12

一个简单的 估算 是直接除以4

posted on 2021-06-06 18:31  雾恋过往  阅读(78)  评论(0编辑  收藏  举报

Live2D