设为首页 加入收藏

TOP

LeetCode 231: Power of Two
2015-11-21 00:58:01 来源: 作者: 【 】 浏览:2
Tags:LeetCode 231: Power Two

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

?

判断一个数是否是2的幂,判断方法主要依据2的N次幂的特点:仅有首位为1,其余各位都为0.

方法1: n & n-1 == 0

class Solution {
public:
    bool isPowerOfTwo(int n) {
        return (n>0) && (!(n&(n-1)));
    }
};

?

方法2: 判断n的二进制中1的个数

?

	bool isPowerOfTwo(int n) {
		int count = 0;
		while (n > 0)
		{
			count+=(n&0x01);
			n>>=1;
		}
		return count==1;
	}


?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 3250 Bad Hair Day 模拟单调栈 下一篇HDU_1533 Going Home(最优匹配)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: