[LeetCode]231. Power of Two判断是不是2\3\4的幂
/*
用位操作,乘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;
}
[LeetCode]231. Power of Two判断是不是2\3\4的幂的更多相关文章
- LeetCode - 231. Power of Two - 判断一个数是否2的n次幂 - 位运算应用实例 - ( C++ )
1.题目:原题链接 Given an integer, write a function to determine if it is a power of two. 给定一个整数,判断该整数是否是2的 ...
- [LeetCode] 231 Power of Two && 326 Power of Three && 342 Power of Four
这三道题目都是一个意思,就是判断一个数是否为2/3/4的幂,这几道题里面有通用的方法,也有各自的方法,我会分别讨论讨论. 原题地址:231 Power of Two:https://leetcode. ...
- [LeetCode] 231. Power of Two 2的次方数
Given an integer, write a function to determine if it is a power of two. Example 1: Input: 1 Output: ...
- LN : leetcode 231 Power of Two
lc 231 Power of Two 231 Power of Two Given an integer, write a function to determine if it is a powe ...
- LeetCode 231 Power of Two
Problem: Given an integer, write a function to determine if it is a power of two. Summary: 判断一个数n是不是 ...
- Leetcode 231 Power of Two 数论
同样是判断数是否是2的n次幂,同 Power of three class Solution { public: bool isPowerOfTwo(int n) { ) && ((( ...
- Java [Leetcode 231]Power of Two
题目描述: Given an integer, write a function to determine if it is a power of two. 解题思路: 判断方法主要依据2的N次幂的特 ...
- [LeetCode] 231. Power of Two ☆(是否2 的幂)
描述 Given an integer, write a function to determine if it is a power of two. 给定一个整数,编写一个函数来判断它是否是 2 的 ...
- (easy)LeetCode 231.Power of Two
Given an integer, write a function to determine if it is a power of two. Credits:Special thanks to @ ...
随机推荐
- uni搜索功能实现
uni搜索功能的实现
- 20190713_windows 2008 R2在启动网站时报错_另一个程序正在使用此文件,进程无法访问
80端口已经被占用了; 换个端口就好了, 如果你是云服务器, 记得控制台也要开放对应的端口
- PyQt(Python+Qt)学习随笔:信号签名中的万能Python类型PyQt_PyObject
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 信号在定义时参数如果使用字符串'PyQt_PyObject'表示参数可以是任何Python类型,这通 ...
- 开源版本Visifire的应用
Visifire曾经开源,保持使用开源版本是不会有版权问题滴. 引用的命名控件 using Visifire.Charts; using Visifire.Commons; 一.应用示例主要代码 // ...
- vulnstack靶机实战01
前言 vulnstack是红日安全的一个实战环境,地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/最近在学习内网渗透方面的相关知识,通过对靶机的 ...
- numpy 中的堆叠 stack
参考: https://blog.csdn.net/Riverhope/article/details/78922006 vstack,vertical 垂直堆叠 hstack, horizontal ...
- 开发实践丨用小熊派STM32开发板模拟自动售货机
摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示. 本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代 ...
- AcWing 332. 股票交易
大型补档计划 题目链接 \(f[i][j]\) 表示前 \(i\) 天,手里有 \(j\) 个股票挣得最多钱 买股票.枚举 \(u < i - W\) \(f[i][j] = max(f[u][ ...
- 题解-Koishi Loves Construction
题解-Koishi Loves Construction 前缀知识 质数 逆元 暴搜 Koishi Loves Construction 给定 \(X\),\(T\) 组测试数据,每次给一个 \(n\ ...
- 排序算法-Java实现快速排序算法