原题:
Given an integer, write a function to determine if it is a power of two.
题意:
给你一个数,问你这个数是不是2的n次方。
class Solution {
public:
bool isPowerOfTwo(int n)
{
if(n==1)
return true;
if(n%2)
return false;
while(n)
{
n=n/2;
if(n==1)
return true;
if(n%2)
return false;
}
}
};
解答:
我的想法很粗暴,就是不断的除以2判断除以2以后是否还是一个偶数,除到最后是1.那么答案就正确。
我看到了一个别人的解法,觉得很好~真是简单
bool isPowerOfTwo(int n) {
return (n > 0) && (!(2147483648%n)); //2147483648 = 2^31
}