您的位置:首页 > 其它

FJNU 1307 阶乘结果末尾有多少零

2009-07-27 11:35 267 查看
阶乘结果末尾有多少零
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

输出一个整数,表示N!的末尾有多少个连续的零。

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: