题目: 如何判断一个数是否是2的n次方,要求时间复杂度为O(1);

思路:本题考察的是位运算,尤其是对二进制的理解;当一个数为2的n 次方时,整个二进制数,只有他本位是1 其他位为0,如果我们给这个数减一,那么本位变为0 其他位全部变成1;我们可以通过&运算, 如果为0即为2的n次方; 本题暂不讨论n为分数(既浮点数)的情况;

例: 我们通过8来进行距离 他是2的3次方

代码实现

public static  boolean  isPower(int n){if(n<1)return  false;return   n&(n-1)==0;
}

随笔-如何判断一个数是否是2的n次方O(1)算法相关推荐

  1. 快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .

    将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0: 因此问题可以转化为判断1后面是否跟了偶数个0就可以了. 4的整数次幂的二进制数都为 ...

  2. 快速判断一个数是否是2的幂次方

    public class Test {public static void main(String[] args) {int num = 10;if (0 == (num & (num - 1 ...

  3. 快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方!

    将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0: 因此问题可以转化为判断1后面是否跟了n个0就可以了. 如果将这个数减去1后会发现,仅有的那个1会变为 ...

  4. 如何判断一个数是否为2的幂次方

    最近在OJ上做题,遇到一道题,其中一个细节就是需要判断一个数是否为2的幂次方.初看似乎很简单,可我想来想去,竟然无甚好办法.最后我用一个笨办法解决了,那就是将2 4 8 16 32- -存到一个数组里 ...

  5. C语言编程判断是否为2的幂,C语言判断一个数是否是2的幂次方或4的幂次方

    快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方!将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0: 因此问题可以转化为判断1后面是否跟了n个 ...

  6. 在C语言中如何判断一个数是不是2的幂次方,判断一个数是否为2的幂次方的方法...

    对于如何判断一个数是否为2的幂次方这个问题是很多新手们都好奇的,今天我们就带着这个疑问跟小编去看看判断一个数是否为2的幂次方的方法吧,感兴趣的小伙伴们赶紧收藏起来. 将2的幂次方写成二进制形式后,很容 ...

  7. C语言判断是不是2的幂次方,C语言判断一个数是否是2的幂次方或4的幂次方

    快速判断一个数是否是2的幂次方,若是,并判断出来是多少次方! 将2的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1,并且1后面跟了n个0: 因此问题可以转化为判断1后面是否跟了n ...

  8. c语言判断一个数是否为质数的n次方,C语言中 输入一个数 判断这个数是否为3的N次方 求代码...

    C语言中 输入一个数 判断这个数是否为3的N次方 求代码 答案:4  信息版本:手机版 解决时间 2019-10-03 18:55 已解决 2019-10-03 01:54 C语言中 输入一个数 判断 ...

  9. 如何判断一个数是否为2的N次方

    题目:给定一个整数num,判断这个整数是否是2的N次方.比如,2,4,8是2的那次方,6,10不是2的N次方. 请看下面的程序: public static bool Check1(int num) ...

最新文章

  1. 2021.09 电子学会 - 软件编程(图形化)试题讲解
  2. mysql proxy性能差_两种MySQL-Proxy架构的测试对比记录
  3. Install matplotlib Error: src/ft2font.h:16:22: fatal error: ft2build.h: No such file or directory
  4. 利用Access-Control-Allow-Origin响应头解决跨域请求
  5. 剑指offer(23)二叉搜索树的后序遍历序列
  6. 漫画:如何实现大整数相加
  7. imagick php 缩放,php使用imagick模块实现图片缩放、裁剪、压缩示例
  8. 【2018ACM山东省赛 - E】Sequence(树状数组,思维,优化)
  9. CSS3那些不为人知的高级属性
  10. 2017.4.07 js 中的function 实现的方式
  11. ACM模式数组构建二叉树
  12. 第五十节,面向对象基本介绍
  13. 【车道线检测与寻迹】4月20 欧式、4D、8D、方向倒角距离ODT距离变换
  14. 安装 virtualenvwrapper
  15. 大事件,Java被超越了,2021年5月TIOBE编程语言排行榜出炉
  16. 高校科研管理系统源代码_高校科研信息管理系统
  17. Qt之QPA(linuxfb 一)
  18. VM虚拟机桥接模式的复制物理网络连接状态是什么意思
  19. 计算机配置扫盲,小白买电脑不知所措?最全的扫盲知识
  20. 维谛技术(Vertiv)开启网络能源新时代

热门文章

  1. kali配置网络和安全通信
  2. MYSQL+MYCAT读写分离实战
  3. Qt汽车自定义仪表盘控件
  4. react 阮一峰_React 最简单的入门应用项目
  5. Engineer-Exec02-参考解析
  6. 提测模板、准入标准和准出标准
  7. Unity开发Gear VR app走过的弯路VR开发心得
  8. 一文读懂:GPU加速是什么?
  9. pythonw是什么文件_Python中.py和.pyw文件的区别 | 勤奋的小青蛙
  10. matlab之取余与取商