51nod 1003 阶乘后面0的数量

每一个 2 与一个 5 相乘,结果就增加一个零。

所以求 n! 后面的连续零的个数,其实就是求其中相乘的数含有因子每对因子 2 与 5  的个数。

又因为从1到某个数,所含 2 的个数比 5 多,所以问题就可以进一步简化到求含有因子5的个数。

 

然后自己没写出来,没骨气的又看了别人的代码..GG啊

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

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

 

posted @ 2017-08-15 21:21  Draymonder  阅读(129)  评论(0编辑  收藏  举报