pku1401 Factorial 计算n!末尾有几个0?

/*
    Author:yzm

    求阶乘末尾0的个数
    因式分解,有多少对2和5,末尾就有多少个0
    而总是2多5少,所以5的个数决定了0的个数

    进位思想:
        先看有多少个5  (v除以5)
        再看有多少个25 (v再除以5)
        再看有多少个125(v再除以5)
        ……
    (类似于筛法)
*/
#include <cstdio>

int main()
{
    int n, v, cnt;
    scanf("%d", &n);
    while(n --)
    {
        scanf("%d", &v);
        cnt = 0;
        while(v > 0)
        {  
            v /= 5;
            cnt += v;
        }
        printf("%d\n", cnt);
    }
    return 0;
}

 

你可能感兴趣的:(pku)