求n!中末尾零的个数

分析:求n!中末尾零的个数,2和5会出来零,求末尾0的个数,就是求2和5同时出现的次数,要统计2和5出现的次数,易知有,5一定有2,有2不一定有5,所以问题就变成了求n中5出现的次数。

#include <stdio.h>
int main()
{
    int N;                     
    int sum = 0;
    scanf("%d", &N);          // 输入N
    for(int i = 1; i <= N; i++)
    {
        int j = i;
        while(0 == j % 5)
        {
            sum++;            // 统计公约数5出现的频次
            j /= 5;
        }
    }
 
    printf("%d\n", sum);
}
ll cal(ll n)
{
    ll res=0;
    while(n)
    {
        res+=n/5;
        n=n/5;
    }
    return res;
}

猜你喜欢

转载自blog.csdn.net/qq_37891604/article/details/81161925