您的位置:首页 > 其它

51NOD 1003 阶乘后面0的数量(一个思维的题目)

2016-05-25 20:41 441 查看
传送门

1003 阶乘后面0的数量

n的阶乘后面有多少个0?

6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。

Input

一个数N(1 <= N <= 10^9)

Output

输出0的数量

Input示例

5

Output示例

1

解题思路:

其实这是一个比较水的题,将这个题放上呢,是为接下来要写的一篇博客做铺垫的,我们可以这么想,要求n!后面有多少个0,那么什么样的数能够组成0呢,肯定是2*5了,那么很容易就想到出现5的次数比2小,那么我们主要就考虑出现5的次数就行了。所以就是看n!里面有多少个5,这个可以通过递归来实现。详见代码:

上代码:

#include <iostream>

using namespace std;
typedef long long LL;
LL get(LL n)
{
if(n == 0)
return 0;
return n/5+get(n/5);
}
int main()
{
LL n;
while(cin>>n)
{
cout<<get(n)<<endl;
}
return 0;
}
/**
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\  =  /O
____/`---'\____
.'  \\|     |//  `.
/  \\|||  :  |||//  \
/  _||||| -:- |||||-  \
|   | \\\  -  /// |   |
| \_|  ''\---/''  |   |
\  .-\__  `-`  ___/-. /
___`. .'  /--.--\  `. . __
."" '<  `.___\_<|>_/___.'  >'"".
| | :  `- \`.;`\ _ /`;.`/ - ` : | |
\  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑       每次AC
**/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: