这类题都可以用一种recursive的方法(不是最好的方法)去解决,下面以342为例:
首先是Base Case: 如果 num <= 0, 则num不是4的幂;如果num == 1,则num是4的幂.
然后是Recursive Rule: 如果num不是4的倍数,则num不是4的幂;如果num是4的倍数,则继续检查num / 4是否为4的幂。
class Solution {
public boolean isPowerOfFour(int num) {
if(num <= 0){
return false;
}
if(num == 1){
return true;
}
if(num % 4 != 0){
return false;
}else{
return isPowerOfFour(num / 4);
}
}
}