• (数学 尾0的个数) 51nod1003 阶乘后面0的数量


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

    输入

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

    输出

    输出0的数量

    输入样例

    5

    输出样例

    1

    ------------------------------------------------------------------------------------
    可以统计2的个数和的个数。
    编程之美有讲:一个数 n 的阶乘末尾有多少个 0 取决于从 1 到 n 的各个数的因子中 2 和 5 的个数, 而 2 的个数是远远多余 5 的个数的, 因此求出 5 的个数即可. 
    可以先将n除上5,取中间值在除5,直至为0,将中间值累加就行。
    C++代码:
    #include<iostream>
    #include<cstdio>
    using namespace std;
    typedef long long ll;
    int main() {
        ll n;
        cin >> n;
        ll sum = 0;
        while (n) {
            ll b = n / (ll)5;
            sum += b;
            n /= 5;
        }
        cout << sum << endl;
        system("pause");
        return 0;
    }
  • 相关阅读:
    FastDFS的简单使用
    KindEditor的简单使用
    rpc
    SDS——动态字符串
    图的深度优先遍历和广度优先遍历
    innodb和myisam原理
    cap理论
    冒泡排序
    桥接模式
    适配器模式
  • 原文地址:https://www.cnblogs.com/Weixu-Liu/p/10676547.html
Copyright © 2020-2023  润新知