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

  • 相关阅读:
    网络编程
    Python之异常处理
    python第31天作业(面向对象高级)
    day01_计算机的基础介绍
    第一章/第二章课后习题
    day12
    day11
    day09-10
    day08
    day07
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9703517.html
Copyright © 2011-2022 走看看