【LeetCode】231. Power of Two
2015-09-01 16:03
417 查看
题目:
Given an integer, write a function to determine if it is a power of two.提示:
此题判断输入的数是否是2的次方。如果一个数是2的次方,那么它的二进制数只有一个1,其他都是0。根据这一定理,我们可以用如下方法解决这一问题:第一种方法:将输入的数字转化为bitset,然后用count函数计算包含的1的个数;
第二种方法:计算n&(n-1),其中&是按位与。如果n是2的次方,那么这一计算的结果将会是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)); } };
相关文章推荐
- (转)盒子概念和DiV布局
- Mongodb怎样进入web控制台
- 目录测试
- AngularJS开发指南09:IE浏览器兼容性
- Android开源框架
- 剑指offer——面试题37:两个链表的第一个公共结点(哈希,栈)
- 文本分类综述
- 详解 CALayer 和 UIView 的区别和联系
- android 常用时间格式转换代码
- LINUX网卡(设置千兆网卡速度及模式)
- Unity用图片数组播放动画
- App Store下载Mac应用失败的解决办法
- Cocos2D-X设计模式: 组合模式
- 笔记
- vector容器用法详解
- HDU3338 Kakuro Extension 网络流 isap
- adaboost: 0%正确率=100%正确率
- 添加用户到sudoers
- 快速启用tomcat远程调试(Linux系统)
- .net HTMLParser详细使用说明 强大的Filter类 解析HTML文档如此简单