FJNU 1307 阶乘结果末尾有多少零
原创
©著作权归作者所有:来自51CTO博客作者无幻__的原创作品,请联系作者获取转载授权,否则将追究法律责任
阶乘结果末尾有多少零
|
Time Limit: 1 Seconds Memory Limit: 32768 K
Total Submit:594 Accepted:314
|
Description
1000的阶乘1*2*3*...*1000结果是一个很大的数,求这么大的数末尾有多少个连续的零。
Input
本题有多组测试数据,每组测试数据占一行。
每组数据含有一个正整数N。(N不大于1000000)
N=-1结束。
Output
Sample Input
1
5
1000
Sample Output
0
1
249
|
解题:
当0 < n < 5时,f(n!) = 0;
当n >= 5时,f(n!) = k + f(k!), 其中 k = n / 5(取整)。
#include <iostream>
using namespace std;
int getZero(int n)
{
if (n>0 && n<5)
{
return 0;
}
else
{
return (n/5+getZero(n/5));
}
}
int main()
{
int N;
while(cin>>N && N!=-1)
{
cout<<getZero(N)<<endl;
}
return 0;
}