leetcode231-Power of Two(判断一个整数n是否为2的方幂)
来源:互联网 发布:站台气候数据 编辑:程序博客网 时间:2024/04/29 12:13
问题描述:
判断一个整数n是否为2的方幂,即是否可以表示成2^X的形式。
问题求解:
判断一个数是2的幂,主要是要找出2的幂次方的数的特点。我们知道,1个数乘以2就是将该数左移1位,而2的0次幂为1, 所以2的n次幂(就是2的0次幂n次乘以2)就是将1左移n位, 这样我们知道如果一个数n是2的幂,则其只有首位为1,其后若干个0,必然有n & (n - 1)为0 !!!(在求1个数的二进制表示中1的个数的时候说过,n&(n-1)去掉n的最后一个1)。因此,判断一个数n是否为2的幂,只需要判断n&(n-1)是否为0即可。
#include <iostream>using namespace std;bool Is2Power(int n){ if(n<=0) { return false; } return 0==(n & (n-1));}int main(){ for(int i=0;i<=8;i++) { cout <<i<<"是否为2的方幂:"<< Is2Power(i) << endl; } return 0;}
执行结果:
0是否为2的方幂:01是否为2的方幂:12是否为2的方幂:13是否为2的方幂:04是否为2的方幂:15是否为2的方幂:06是否为2的方幂:07是否为2的方幂:08是否为2的方幂:1
0 0
- leetcode231-Power of Two(判断一个整数n是否为2的方幂)
- [LeetCode]231. Power of Two-判断一个整数是否是2的幂次方
- LeetCode231 判断是否为2的幂
- 231. Power of Two--判断一个数是否为2的幂
- LeetCode231:Power of Two
- Leetcode231 Power of Two
- Leetcode231 Power of Two
- leetcode231: Power of Two
- LeetCode231 Power of Two
- Power of Two 判断是否为2的次方
- [LeetCode] 231. Power of Two(判断整数是否是2的幂)
- 判断一个整数是否为2的n次幂
- Power of Three ,判断一个数是否为3的n次幂
- leetcode 231. Power of Two 判断是否为2的幂 Java
- 231. Power of Two (判断一个数是否是2的幂)
- Power of Two:判断一个数是否是2的幂
- Power of Two 判断一个数是不是2的幂
- Power of Two ----- 判断一个数是不是2的幂
- 一个简单操作实现00
- 第八章 朴素贝叶斯分类法
- IDF实验室:牛刀小试--摩斯密码
- 国内计算机视觉与机器学习研究团队
- C++友元(2) - 继承与友元
- leetcode231-Power of Two(判断一个整数n是否为2的方幂)
- 第八章 基于规则的分类
- IDF实验室:牛刀小试--聪明的小羊
- 第九章 贝叶斯信念网络分类
- 通过 itms:services://? 在线安装ipa ,跨过app-store
- IDF实验室:牛刀小试--ASCII码而已
- 第九章 后向传播算法(分类)
- 回文自动机(回文树)
- KVC与KVO的初次使用