题目描述:
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。
示例 1: 输入: 1 输出: true
示例 2: 输入: 16 输出: true
示例 3: 输入: 218 输出: false
简洁思路:
当n=1时,返回true;当n=2时,返回true;当n=0或者n不是2的倍数,返回false;然后通过递归n/2依次判断是否符合条件。
代码如下:
bool isPowerOfTwo(int n) {
if(n==1){
return true;
}
else if(n==0 || n%2!=0){
return false;
}
else if (n==2){
return true;
}
return isPowerOfTwo(n/2);
}