HDU HDOJ 1124 Factorial

来源:互联网 发布:淘宝不支持该地区销售 编辑:程序博客网 时间:2024/05/16 05:33

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;}
原创粉丝点击