Power of Two
Total Accepted: 42645 Total Submissions: 128399 Difficulty: Easy
Given an integer, write a function to determine if it is a power of two.
思路:
1).0可不是2的阶乘,因此,要在函数头判断输入是否为0。
2).如果n是2的阶乘,那么n用二进制表示,就是1个1,后面跟着一串0。因此,只要把末尾所有0全部移除,再判断其是否为1,就得出结果了。
class Solution {
public:
bool isPowerOfTwo(int n) {
if(n==0){
return false;
}
while((n&1)==0){
n>>=1;
}
if(n==1){
return true;
}else{
return false;
}
}
};