zoukankan      html  css  js  c++  java
  • [简单思维题]末尾零

    题目描述

    定义阶乘:n!=1*2*…*n
    给定n,求n!末尾的0的个数。
    例如:当n=10,n!=3628800,末尾0的个数为2。

    输入

    输入共一行,一个正整数n(n<=10^9)。

    输出

    输出共一行,包含一个整数,表示对应答案。

    样例输入

    15
    

    样例输出

    3
    
    思路:n!可以写成质因数分解的形式即n!=(2^x)*(3^y)*(5^z)...,显然这里面的一个2与一个5相乘能使末尾产生一个0,那么末尾0的个数就是min(x,z),
    由于在1~n中能被2整除的数多于能被5整除的数,则x>z,即min(x,z)=z,那我们就只需要计算n!的因子5的个数即可。
    因子5的个数有两种算法:1.计算从1到n的每一个数里有多少个5,求和
    2.带入公式(n/5)+(n/25)+...+(n/[5^k])([5^k]<=n)即可得因子5得个数(n/5表示1~n里是5的倍数的数有几个,n/25表示1~n里是25的倍数的数有几个,以此类推)

    AC代码:
    #include <iostream>
    #include<cstdio>
    using namespace std;
    
    int main()
    {
        int n;
        scanf("%d",&n);
        int k=5;
        int ans=0;
        while(k<=n){//利用上述公式
            ans+=n/k;
            k*=5;
        }
        printf("%d
    ",ans);
        return 0;
    }
     
    转载请注明出处:https://www.cnblogs.com/lllxq/
  • 相关阅读:
    npm 之 --save , -D,--save -dev的区别
    webpack 之 打包(最新版)
    npm 与 yarn 对比
    webpack 之 打包图片文件
    webpack 之 打包less文件
    javascript 之 Event Loop
    package.json中type的含义
    webpack 之 打包css文件操作
    常见问题 之 webpack打包css问题
    类方法和对象方法
  • 原文地址:https://www.cnblogs.com/lllxq/p/8660524.html
Copyright © 2011-2022 走看看