zoukankan      html  css  js  c++  java
  • 172 Factorial Trailing Zeroes 阶乘后的零

    给定一个整数 n,返回 n! 结果尾数中零的数量。
    注意: 你的解决方案应为对数时间复杂度。

    详见:https://leetcode.com/problems/factorial-trailing-zeroes/description/

    Java实现:

    N的阶乘可以分解为: 2的X次方,3的Y次方,4的K次方,5次Z方,.....的乘积。由于10 = 2 * 5,所以M只能和X和Z有关,每一对2和5相乘就可以得到一个10,于是M = MIN(X,Z),不难看出X大于Z,因为被2整除的频率比被5整除的频率高的多。所以可以把公式简化为M=Z。

    方法一:

    class Solution {
        public int trailingZeroes(int n) {
            int res=0;
            while(n!=0){
                n/=5;
                res+=n;
            }
            return res;
        }
    }
    

    方法二:超时

    class Solution {
        public int trailingZeroes(int n) {
            int res=0;
            for(int i=5;i<=n;++i){
                int m=i;
                while(m%5==0){
                    ++res;
                    m/=5;
                }
            }
            return res;
        }
    }
    

    参考:https://www.cnblogs.com/grandyang/p/4219878.html

  • 相关阅读:
    rpc rmi http
    理解Global interpreter lock
    maven scope含义的说明
    实现图片缩放
    实现在edittext中任意插入图片
    上传图片或文件到服务器端
    onResume
    关于Context
    android bitmap compress
    saveFile()方法
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8733246.html
Copyright © 2011-2022 走看看