给定一个整数,写一个函数来判断它是否是 4 的幂次方。如果是,返回 true ;否则,返回 false 。
整数 n 是 4 的幂次方需满足:存在整数 x 使得 n == 4x
输入:n = 16 5 1 输出:true false true
4 的幂 一个数如果是4 的幂 x=4*4*4*.....*4。
思路:4的幂 一定可以被4整除 嵌套循环的情况下,最后得到的结果一定是1。所以输入一个数在一直除4 的情况下 得到结果为1 返回true 如果不为1则返回false。代码如下
public boolean isPowerOfFour(int n) {
if(n<=0)return false; //小于等于0 直接返回false。
while(n%4==0){ //求余为0 说明可以被整除 所以进入循环直接除4
n=n/4;
}
if(n==1)return true; 一直除4后 判断是否为1
else return false;
}
这里我犯了一个问题,没有看完全用例,一直在想着1 不是4的幂。所以刚开始写的 if(n<=1)return false; 找了好久的原因。所以一定要看清楚题目要求哦。