给定一个整数 (32位有符整数型),请写出一个函数来检验它是否是4的幂。
示例:
当 num = 16 时 ,返回 true 。 当 num = 5时,返回 false。
问题进阶:你能不使用循环/递归来解决这个问题吗?
思考
4的幂具有以下性质:
为正数,且取4的模肯定为0,用4整除得商再用4整除最终商为1。
使用递归可以轻松解决。
public boolean isPowerOfFour(int num) {
if (num <= 0) {
return false;
}
if (num > 4 && num % 4 > 0) {
return false;
}
if (num == 1) {
return true;
} else {
return isPowerOfFour(num / 4);
}
}