首页 > 代码库 > hdu 1124 数论

hdu 1124 数论

题意:求n!中末尾连续0的个数  其实就是2*5的个数

30! 中有5 10 15 20 25 30  是5的倍数有6个   6=30/5;

6/5=1; 这个1 为25

5  10 15 20  25  30 35 40 45 50 55 60  65 70 75 80  85 90 95 100      100/5=20;

                  25                     50                    75                     100       20/5=4;    有4个25

以此类推

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
int main()
{
    int n;
    int t,d;
    int sum;
    scanf("%d",&t);
    while(t--)
    {
        sum=0;
        scanf("%d",&n);
        sum=n/5;n=sum;
        while(n/5!=0)
        {
            sum+=n/5;
            n=n/5;
        }
        printf("%d\n",sum);
    }
    return 0;
}