题目大意:
3的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27 输出: true
示例 2:
输入: 0 输出: false
示例 3:
输入: 9 输出: true
示例 4:
输入: 45 输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
如果想查看本题目是哪家公司的面试题,请参考以下免费链接: https://leetcode.jp/problemdetail.php?id=326
解题思路分析:
本题是一道纯数学题目,并且题目要求不能使用递归和循环。其实在int型取值范围内,3的幂运算的结果只有21个即:3的0次幂到3的20次幂。因此,我们只要判断3的20次幂与n的余数是否为0即可。
实现代码:
public boolean isPowerOfThree(int n) { return n>0 && Math.pow(3, 20) % n == 0; }
本题解法执行时间为11ms。
Runtime: 11 ms, faster than 87.46% of Java online submissions for Power of Three.
Memory Usage: 40.6 MB, less than 6.25% of Java online submissions for Power of Three.
本网站文章均为原创内容,并可随意转载,但请标明本文链接如有任何疑问可在文章底部留言。为了防止恶意评论,本博客现已开启留言审核功能。但是博主会在后台第一时间看到您的留言,并会在第一时间对您的留言进行回复!欢迎交流!
本文链接: https://leetcode.jp/leetcode-326-power-of-three-解题思路分析/
View Comments (1)
I was suggested this blog by my cousin. I am
not sure whether this post is written by him as nobody else know such detailed about
my trouble. You are wonderful! Thanks!