zoukankan      html  css  js  c++  java
  • LeetCode--326--3的幂

    问题描述:

    给定一个整数,写一个函数来判断它是否是 3 的幂次方。

    示例 1:

    输入: 27
    输出: true
    

    示例 2:

    输入: 0
    输出: false

    示例 3:

    输入: 9
    输出: true

    示例 4:

    输入: 45
    输出: false

    方法:取243时,会出错。log(243,3) == 4.9999... 用round 四舍五入。(时间太长)

     1 import math
     2 class Solution:
     3     
     4     def isPowerOfThree(self, n):
     5         """
     6         :type n: int
     7         :rtype: bool
     8         """
     9         if n > 0:
    10             return pow(3,round(math.log(n,3))) == n
    11         else:
    12             return False

    官方:3^19=1162261467是小于2^31最大的3的倍数

    1 class Solution:
    2     def isPowerOfThree(self, n):
    3         """
    4         :type n: int
    5         :rtype: bool
    6         """
    7         maxThreeInt = 3**19
    8 
    9         return n > 0 and maxThreeInt % n == 0

    循环:

     1 import math
     2 class Solution:
     3     
     4     def isPowerOfThree(self, n):
     5         """
     6         :type n: int
     7         :rtype: bool
     8         """
     9         if n > 0:
    10             if n == 1:
    11                 return True
    12             else:
    13                 k = 0
    14                 while k == 0 :
    15                     n = n / 3.0
    16                     k = n % 3
    17                 if n == 1:
    18                     return True
    19                 else:
    20                     return False
    21         else:
    22             return False

    2018-09-25 21:03:03

  • 相关阅读:
    dts--framework(三)
    dts--tests(三)
    dts--tests(一)
    dts--framework(二)
    dts--framework(一)
    Fiddler(一)
    javascript(二)
    javascript(一)
    scrapy--selenium(二)
    linux安装vmware出现kernel-header问题
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9703517.html
Copyright © 2011-2022 走看看