标签:
Given an integer, write a function to determine if it is a power of two.
此题判断输入的数是否是2的次方。如果一个数是2的次方,那么它的二进制数只有一个1,其他都是0。根据这一定理,我们可以用如下方法解决这一问题:
第一种方法:
class Solution { public: bool isPowerOfTwo(int n) { if (n < 0) return false; bitset<32> bits(n); if (bits.count() == 1) return true; else return false; } };
第二种方法:
class Solution { public: bool isPowerOfTwo(int n) { return n > 0 && !(n & (n - 1)); } };
标签:
原文地址:http://www.cnblogs.com/jdneo/p/4775958.html