HDU 1124 Factorial
题目
点此查看 HDU 1124 Factorial
分类
找规律
题意
求 N! 末尾 有多少 0 (1 <= N <= 1000000000)
题解
N! 如此巨大的数 当然不可能 暴力求解
肯定有技巧
首先 我们看 如何 得到 0 除了原有的 0 首先 (2 * 5 = 10 (其实 是 偶数 乘以 5得 0 但是 偶数 可以拆成 2 * n形式)
由于 N! 中 偶数 比 5 多得多
问题变成 N! 有多少个 5
但是注意 5 个 10会在产生一个 5
所以 迭代计算 5 得数量
代码
#include <iostream>
using namespace std;
int main()
{
int t,num,sum;
cin >> t;
while(t--)
{
sum = 0;
cin >> num;
while(num > 0)
{
sum += (num / 5);
num /= 5;
}
cout << sum << endl;
}
return 0;
}