leetcode | Power of Two
2015-07-18 19:21
246 查看
Power of Two : https://leetcode.com/problems/power-of-two/
Given an integer, write a function to determine if it is a power of two.
判断一个数是否是2的幂?
当无从下手时,可以根据例子找出规律。对于1,2,4,8,16它们的二进制表示分别是:
1: (1)
2: (10)
4: (100)
8: (1000)
16:(10000)
可以发现规律,凡是2的幂,只有最高位是 1,其他低位全为0.
而对于2n−12^n-1的二进制,如3 的二进制为 (011); 7 的二进制位 (0111)
if 2n2^n &(2n−1)(2^n-1) == 0 true, or false
或者判断,检测是否除了一个最高位 1,还有没有别的位是 1
Given an integer, write a function to determine if it is a power of two.
判断一个数是否是2的幂?
当无从下手时,可以根据例子找出规律。对于1,2,4,8,16它们的二进制表示分别是:
1: (1)
2: (10)
4: (100)
8: (1000)
16:(10000)
可以发现规律,凡是2的幂,只有最高位是 1,其他低位全为0.
而对于2n−12^n-1的二进制,如3 的二进制为 (011); 7 的二进制位 (0111)
if 2n2^n &(2n−1)(2^n-1) == 0 true, or false
或者判断,检测是否除了一个最高位 1,还有没有别的位是 1
class Solution { public: bool isPowerOfTwo(int n) { if (n <= 0) return false; if (n & (n-1)) return false; return true; } };
class Solution { public: bool isPowerOfTwo(int n) { if (n <= 0) return false; while (n != 1) { if (n & 0x01 == 1) return false; n = n >> 1; } return true; } };
相关文章推荐
- 《大话数据结构》简体中文版勘误
- php学习
- 一个学生的信息是:姓名,学号,性别,年龄等信息,用一个链表,把这些学生信息连在一起, 给出一个age, 在些链表中删除学生年龄等于age的学生信息
- GP中数据管理
- 《大话数据结构》第9章 排序 9.10 总结回顾
- 暑假集训.1
- 最短路径—Dijkstra算法和Floyd算法
- [MAC使用经验]常用MAC快捷键
- 【bzoj4034】 HAOI2015 T2 树链剖分+小变形
- 《大话数据结构》第9章 排序 9.9 快速排序(下)
- HNOI2011 BZOJ2326 数学作业
- 堆和栈的区别!
- HNOI2011 BZOJ2326 数学作业
- [cocos2dx]重要父类——CCNode节点类
- Python脚本访问Greenplum数据库安装指导
- 《大话数据结构》第9章 排序 9.9 快速排序(上)
- 《大话数据结构》第9章 排序 9.8 归并排序(下)
- c++ thread 笔记1
- 外部javascript 方法修改 angularjs 中$rootScope和$scope
- CentOS下源码安装GCC 5.2.0