作者:七里汀 | 来源:互联网 | 2023-10-13 13:15
题目:https:leetcode-cn.comexploreinterviewcardtop-interview-questions-easy25math62题目
题目:https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/25/math/62/
题目描述:
给定一个整数,写一个函数来判断它是否是 3 的幂次方。
示例 1:
输入: 27
输出: true
示例 2:
输入: 0
输出: false
示例 3:
输入: 9
输出: true
示例 4:
输入: 45
输出: false
进阶:
你能不使用循环或者递归来完成本题吗?
思路:如果是3的幂 一定能被3除剩下1.就将n除到底。
代码:
class Solution {public boolean isPowerOfThree(int n) {if(n==1){return true;}else if(n==0){return false;}else{while(n%3==0&&n/3!=0){n=n/3;}if(n==1){return true;}else{return false;}}}
}
//别人的代码:
class Solution {public boolean isPowerOfThree(int n) {if(n<1)return false;while(n%3==0)n/=3;return n==1;}
}//另外的方法:递归
class Solution {public boolean isPowerOfThree(int n) {double result = Math.log10(n)/Math.log10(3);return (result==(int)(result))?true:false;}
}