您的位置:首页 > 其它

LeetCode题解:Power of Two

2015-07-15 09:00 543 查看

题目链接: ## Pow of Two

题目描述:

Given an integer, write a function to determine if it is a power of two.

题目解释:

给定一个整数,实现一个函数,来判断这个整数是否是2的次幂。

比如 8 为 2 的 3次幂, 5 则不是 2 的次幂。

解题方案:

如果一个数能一路被2整除,直到变成数字1,那么这个数就是2的次幂,例如16是2的次幂,那么16可以一直被2整除直到除到1。

这里我们需要注意边界条件:负数和零都不是2的次幂,可以直接排除掉

在除2过程中,只要有一次不能被2整除,那么这个数就不是2的次幂

代码的实现过程就比较简单了,先排除边界条件,然后迭代除2,对于能整除到最后的数返回TRUE,对于中间不能被2整除的数字直接返回false即可。接下来咱们看具体的实现代码:

bool isPowerOfTwo(int n)
{
if (n <= 0 )
{
return false;
}
if (n == 1)
{
return true;
}
while(true)
{
if (n%2 == 1 && n != 1)
{
return false;
}
else
{
n /= 2;

if (n == 1)
{
return true;
}
}
}
}


这个题目比较简单,一个循环的应用,注意边界条件的处理即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode