231. Power of Two
来源:互联网 发布:影楼网络销售工资待遇 编辑:程序博客网 时间:2024/06/07 01:47
题目: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的幂次方。
首先,如果整数小于等于0,那么肯定不是2的幂次方。
然后,2的幂次方在2进制位中的存储特点很明显,例如:
1 的二进制 0000 0001
2 的二进制 0000 0010
4 的二进制 0000 0100
8 的二进制 0000 1000
由此可以发现,2 的幂次的二进制表达式只有一位是1,其余都是0.
所以我们只要设计算法判断当前整数中二进制1的个数就行。
将 n 的二进制位中最右边的0一直移掉,直至遇到第一个1,然后再右移一次,如果是2的幂次方的话,那么此时2进制中应该没有了1,即n变成了0,判断是不是0即可。
代码如下:
class Solution {public: bool isPowerOfTwo(int n) { if (n <= 0) return false; while(!(n & 1)) n = (n >> 1); n = (n >> 1); if (!n) return true; else return false; }};
0 0
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- 231. Power of Two
- RXJAVA 基础使用笔记
- 第五周项目1(1)计算圆的周长
- 欢迎使用CSDN-markdown编辑器
- 路灯 - java
- 使用AsyncTask从网上获取一个网页,在一个TextView中将其源代码显示出来
- 231. Power of Two
- 例题 2.7归并排序
- 检查型异常和非检查型异常
- SAP Backgroud job
- GenericServlet的讲解
- Cocos2d-x相关问题笔记
- CentOS php pgsql 扩展
- c++教程(十四:Dynamic memory)
- Android App整体架构设计的思考(一)