LeetCode-- 3 的幂
给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3x
输入:n = 27
输出:true
改变思维,假设这个数是3的幂次方,那么它应该满足的是,当不断的除以3,最后得到的数应该是1,所以就给它不断的除以3,看最后得到的数是否为1。
while循环(不断地除以3)的条件就是当得到的数能够将3整除(是3的倍数)并且n不等于1时。
当然也要考虑n==0的情况,直接返回false。
class Solution {
public boolean isPowerOfThree(int n) {
if(n==0){
return false;
}
while(n!=1 && n%3==0){
n/=3;
}
return n==1;
}
}