[LeetCode]231. Power of Two判断是不是2\3\4的幂
2024-09-27 22:30:34
/*
用位操作,乘2相当于左移1位,所以2的幂只有最高位是1
所以问题就是判断你是不是只有最高位是1,怎判断呢
这些数-1后形成的数,除了最高位,后边都是1,如果n&n-1就可以判断了
如果是2的幂,&的结果是全0
*/
if (n<=0) return false;
return ((n&(n-1))==0);
划重点:
一个数*2,出相当于左移一位
2.判断是不是3的幂,没啥用的一道题
public boolean isPowerOfThree(int n) {
/*
不能用循环和递归 感觉不看答案是做不出来
3的幂都可以被int中最大的3的倍数整数
*/
return n > 0 && (1162261467 % n) == 0;
}
3.判断是不是4的幂
重点就是记住:0x55555555,8个5这个16进制的二进制是:奇数位1,偶数位0,用于提取出一个数的奇数位
/*
2的幂中有些不是4的幂,哪些呢?多写几个不难发现
2的幂特征是:最高位是1,后边的是0
而4的幂除了上边的特征,还有最高位必须是从后边数第奇数位
比如8的二进制是1000,从后边数第4位是最高位,不是4的幂,同理还有32
判断最高位是不是偶数位,用0x55555555&上就行,因为这个数的二进制表示
是奇数位为1,偶数位为0
*/
public boolean isPowerOfFour(int num) {
return num>0&(num&(num-1))==0&(num&0x55555555)!=0;
}
最新文章
- error LNK2001: 无法解析的外部符号
- T-SQL 基本语法
- Java报表工具FineReport导出EXCEL的四种API
- {Reship}{Matting}Image Matting
- spring获取ApplicationContext对象的方法——ApplicationContextAware
- IE6/7中setAttribute不支持class/for/rowspan/colspan等属性
- python 将数据随机分为训练集和测试集
- CoFun 1613 单词连接
- 串的模式匹配——Brute-Force算法
- 【Unity优化】Unity优化技巧进阶开篇
- 打造SpringBootTemplate(SpringBoot项目的模版)
- 关于json.parse和json.stringify的区别
- 如何在pycharm中使用配置好的virtualenv环境
- vue以及js的一些坑或常用技巧
- 大数据技术之_19_Spark学习_02_Spark Core 应用解析小结
- [Cordova 之 入门篇]
- 1068: [SCOI2007]压缩
- UVA 536 Tree Recovery 建树+不建树
- 转)Ubuntu安装teamviewer
- Android开发利器之Data Binding Compiler V2 —— 搭建Android MVVM完全体的基础
热门文章
- 超稳攻略!Rancher 2.3手动轮换证书,保护集群安全!
- Centos7安装Kubernetes k8s v1.16.0 国内环境
- Spring Security + JJWT 实现 JWT 认证和授权
- 解读 authentication.py
- rsync 参数说明及使用参数笔记
- 数据结构与算法——循环链表的算法实现(Joseph 问题)
- STL——容器(Set &; multiset)的默认构造 &; 带参构造 &; 对象的拷贝构造与赋值
- ModelViewSet+ModelSerializer使用
- NMO not setuid-root (Unix-only)
- gnuplot取消曲线标题