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);

    }

}

 

你可能感兴趣的:(HDU)