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
循环除法:
-
3的幂一定是能够被3整除的数除了1,所以我们采用整除三来减小查找范围
for n >= 27 {//循环除以3/必须能整除以判断他是3的幂
if n%3!=0 {//必须整除
return false
}
n = n / 3
}
//我们这里查找27以内的
-
判断是否为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 炫耀一下:
作者介绍
j
jaryue
V1