• Lintcode数字与二进制运算


    1、判断某个数是否是2的幂次方

    思路:如果n是2的指数次方,那么他的二进制必然只有第一位为1,而刚好n-1就全为1,且比n少一位,所以只要与运算为0即可。
    class Solution:
        """
        @param n: An integer
        @return: True or false
        """
        def checkPowerOf2(self, n):
            # write your code here
            return (n & (n - 1) == 0 and n!=0)
    

    2、尾部的0

    思路:将所有因子分解为质数,我们可以知道,产生一个0,必然只要一个5乘以一个2,所以只要统计5的个数即可。
    class Solution:
        """
        @param: n: An integer
        @return: An integer, denote the number of trailing zeros in n!
        """
        def trailingZeros(self, n):
            # write your code here, try to do it without arithmetic operators.
            sum = 0
            while n > 0:
                sum += n //5
                n //= 5
            return sum
    
  • 相关阅读:
    PHP之目录遍历
    PHP之验证码
    PHP之验证码
    PHP之异常处理模式
    PHP之pdo的预处理模式
    PHP之PDO
    PHP之cookie和session
    PHP之MVC
    单例模式
    ThreadLocal
  • 原文地址:https://www.cnblogs.com/linshuhui/p/9874699.html
Copyright © 2020-2023  润新知