关闭

LeetCode 231: Power of Two

标签: LeetCodepower of 2
3584人阅读 评论(2) 收藏 举报
分类:

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;
	}


2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:201801次
    • 积分:3027
    • 等级:
    • 排名:第11995名
    • 原创:93篇
    • 转载:0篇
    • 译文:1篇
    • 评论:29条
    博客专栏
    文章分类
    最新评论