HDU 1124 n!中0的个数
2012-10-09 16:23
302 查看
做了几次超时,后来往上参考了。。。
N! = 1 * 2 * 3 * (2*2) * 5 * (2*3) * 7...
产生10的原因是有2,5的因子,显然在N!中2的个数大于5的个数,所以只需求出5的个数即可
求 N! (1*2*3*4*5*...*N)里有多少个5其实可以转化成:
N!中:是5的倍数的数+是5^2的倍数的数+5^3.....
如50!:
含有10个5的倍数的数:5,15,20,25,30,35,40,45,50 【50/5=10】
含有2个5^2的倍数的数:25,50【50/(5^2)=2】
可见N!中一共有12个5相乘,那么尾0也必有12个
N! = 1 * 2 * 3 * (2*2) * 5 * (2*3) * 7...
产生10的原因是有2,5的因子,显然在N!中2的个数大于5的个数,所以只需求出5的个数即可
求 N! (1*2*3*4*5*...*N)里有多少个5其实可以转化成:
N!中:是5的倍数的数+是5^2的倍数的数+5^3.....
如50!:
含有10个5的倍数的数:5,15,20,25,30,35,40,45,50 【50/5=10】
含有2个5^2的倍数的数:25,50【50/(5^2)=2】
可见N!中一共有12个5相乘,那么尾0也必有12个
#include <iostream> using namespace std; int main() { int t, res, n; scanf ("%d", &t); while (t--) { res = 0; scanf ("%d", &n); while (n) { res += n / 5; n /= 5; } printf ("%d\n", res); } return 0; }
相关文章推荐
- hdu1124-Factorial
- HDU - 1124 Factorial
- HDU 1124 Factorial
- http://acm.hdu.edu.cn/showproblem.php?pid=1124 N!末尾0的个数
- hdu 1124 Factorial
- hdu 1124(数论)
- HDU 1124 - Factorial (数学)
- hdu 1124 Factorial(末尾0)
- hdu 1124 (n! 中素数p的个数的应用)
- hdu 1124 Factorial (快速求n!末尾0的个数)
- HDU 1124 Factorial (數論)
- HDU-1124(数学技巧)
- HDU 1124 Factorial 水题
- HDU 1124 Factorial
- hdu 1124 数学
- hdu 1124 Factorial(高斯函数定理)
- HDU 1124
- HDU 1124 Factorial
- HDU 1124 Factorial(简单数论)
- HDU 1124 Factorial&&nyoj 84 阶乘的 0【数学】