1、题目描述:
给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 输入: 1 输出: true 解释: 20 = 1 示例 2: 输入: 16 输出: true 解释: 24 = 16 示例 3: 输入: 218 输出: false
2、思路:
因为2的幂词方的二进制数只有一个1,可以使该数字不断右移。当移出第一个1之后,如果此时的数字为0,则为true,反之为false
3、代码: View Code
class Solution { public boolean isPowerOfTwo(int n) { if(n<=0) return false; while(n-((n>>>1)<<1)!=1){ n=n>>>1; } if ((n>>>1)!=0) return false; else return true; }}
4、考察重点:位运算
5、参考资料:无
6、参考链接:无
7、题目链接:https://leetcode-cn.com/problems/power-of-two/