X-man

导航

hdu 1124 Factorial(数论)

题意:

  求n!的尾0的个数

分析:

  0一定是由因子2和5相乘产生的;

  2的个数显然大于5的个数,故只需统计因子5的个数

  n/5不能完全表示n!中5的个数(egg: 25),应该n/=5后,累加上n/2。

  (每个因子5相隔5个数字,将间隔看成一个数,然后隔5个,又出现因子5)

#include<stdio.h>
int main()
{
    int n,ans,x;
    scanf("%d",&n);
    while(n--)
    {
        ans=0;
        scanf("%d",&x);

        //x/=5;
        while(x)
        {
            //ans++;
            ans+=x/5;
            x/=5;
        }
        printf("%d\n",ans);
    }
}

 

posted on 2013-10-01 16:54  雨钝风轻  阅读(174)  评论(0编辑  收藏  举报