j

jaryue

V1

2023/03/22阅读:9主题:默认主题

3的幂

leecode 326

题目描述

给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。

整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x

示例 1:

输入:n = 27 输出:true 示例 2:

输入:n = 0 输出:false 示例 3:

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/power-of-three 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

法1

循环除法:

  1. 3的幂一定是能够被3整除的数除了1,所以我们采用整除三来减小查找范围
for n >= 27 {//循环除以3/必须能整除以判断他是3的幂
  if n%3!=0 {//必须整除
   return false
  }
  n = n / 3
 }
  //我们这里查找27以内的
  1. 判断是否为3的幂
if n == 1 || n == 3 || n == 9 {//在27以内(不包含)只有1,3,9是3的幂
  return true
 }//其他答案都不是
 return false

执行结果

法1

func isPowerOfThree(n int) bool {
 for n >= 27 {//循环除以3/必须能整除以判断他是3的幂
  if n%3!=0 {//必须整除
   return false
  }
  n = n / 3
 }
 if n == 1 || n == 3 || n == 9 {//在27以内(不包含)只有1,3,9是3的幂
  return true
 }//其他答案都不是
 return false
}

执行用时: 20 ms , 在所有 Go 提交中击败了 69.71% 的用户 内存消耗: 5.6 MB , 在所有 Go 提交中击败了 82.99% 的用户 通过测试用例: 21040 / 21040 炫耀一下:

分类:

后端

标签:

Golang

作者介绍

j
jaryue
V1