乌克兰集团网站建设,开发大型网站的流程,光谷网站建设,中南大学双一流建设网站231. 2的幂
题目
给你一个整数 n#xff0c;请你判断该整数是否是 2 的幂次方。如果是#xff0c;返回 true #xff1b;否则#xff0c;返回 false 。
如果存在一个整数 x 使得 n 2x #xff0c;则认为 n 是 2 的幂次方。
示例 1#xff1a;
输入#xff1a;n 1…231. 2的幂
题目
给你一个整数 n请你判断该整数是否是 2 的幂次方。如果是返回 true 否则返回 false 。
如果存在一个整数 x 使得 n 2x 则认为 n 是 2 的幂次方。
示例 1
输入n 1
输出true
解释20 1示例 2
输入n 16
输出true
解释24 16示例 3
输入n 3
输出false示例 4
输入n 4
输出true示例 5
输入n 5
输出false
提示
-231 n 231 - 1 思路
从二进制运算的角度来考虑
与两边都为1结果为1
如果n是2的幂次方则其二进制只有1个1其余都为0
n (n - 1) 可以去除最低位的1去除后等于0则说明是2的幂次方不等于0说明不是2的幂次方
如n8 80000 100070000 0111则870000 0000
如n5 50000 011040000 0101则540000 0100
代码
class Solution {public boolean isPowerOfTwo(int n) {return (n 0 (n (n - 1)) 0); // 判断n0并且n是2的幂}
}