指尖飞舞

得之坦然,失之淡然,顺其自然,争其必然~~~

LeetCode(231) Power of Two

题目

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

分析

判断给定整数是否为2的整次幂。
当该整数对应的二进制串中只有1位1时,必然为2的整次幂。
只需判断n&(n-1)是否为0即可。

代码

#include <iostream>
#include <cstdlib>

using namespace std;

class Solution {
public:
	bool isPowerOfTwo(int n) {
		if (n <= 0)
			return false;
		return (n & (n - 1)) == 0 ? true : false;
	}
};

int main()
{
	cout << Solution().isPowerOfTwo(2) << endl;

	system("pause");
	return 0;
}


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fly_yr/article/details/52356691
个人分类: LeetCode & LintCode
所属专栏: LeetCode & LintCode 题解
上一篇LeetCode(350)Intersection of Two Arrays II
下一篇LeetCode(326) Power of Three
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭