题目概述:
给定一个整数(32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。
示例 1:
输入: 16
输出: true
示例 2:
输入: 5
输出: false
思路:判断一个数是否是4的幂,本方法使用递归,为本人不会使用进阶方法,哈哈。
首先,题目是给的整数,所以不会出现4的负指数幂,也就是幂指数都大于或等于0,也就是给的数全部大于或等于。做这种题的思路就是先判断边界值,数字1符合条件。判断完边界值,就判断不符合条件的值,既然是整数,那么0也要被考虑进去。除此之外,不能被4整除的数也不是4的幂。判断这两个条件后在用递归,一步步的把数缩小。
代码:
bool isPowerOfFour(int num){
if(num==1){
return true;
}
else if(num==0||num%4!=0){
return false;
}
return isPowerOfFour(num/4);
}