nefu 753 n!末尾有多少个0

Problem : 753

Time Limit : 1000ms

Memory Limit : 65536K

description

计算N!末尾有多少个0

input

输入数据有多组,每组1行,每行1个数N(10 <= N <=100000000)

output

在一行内输出N!末尾0的个数。

sample_input

10
100

sample_output

2
24

 举例分析一下公式~~摘自baidu

正好看过这个的算法,2*5=10,在一个数N中,因子2出现的次数总比5出现的次数多,比如说10!

零的个数可以由这样算出
10/5=2
2/5=0
0的个数就是2+0=2,再来个例子,2008
2008/5=401
401/5=80
80/5=16
16/5=3
0的个数就是401+80+16+3=500个零
嗯哼~~~
#include <iostream>
#include <math.h>
using namespace std;

int main()
{
    int n,sum;
    while(cin>>n)
    {
        sum=0;
        while(n)
        {
            n=n/5;
            sum+=n;
        }
        cout<<sum<<endl;
    }
    return 0;
}

 

posted @ 2016-01-15 11:02  邻家那小孩儿  阅读(181)  评论(0编辑  收藏  举报