判断一个数是不是4的n次方

判断一个数是不是4的n次方

问题

给定一个整数(有符号32位),编写一个函数来检查它是否是4的幂。

示例 1:

Input: 16
Output: true

示例 2:

Input: 5
Output: false

代码

这种数在二进制表示中有且只有一个奇数位为 1,例如 16(10000)。

public boolean isPowerOfFour(int num) {
    return num > 0 && (num & (num - 1)) == 0 && (num & 0b01010101010101010101010101010101) != 0;
}

也可以使用正则表达式进行匹配。

public boolean isPowerOfFour(int num) {
    return Integer.toString(num, 4).matches("10*");
}

 上一篇
判断一个数是不是2的n次方 判断一个数是不是2的n次方
判断一个数是不是2的n次方问题 给定一个整数,编写一个函数来确定它是否是2的幂。 示例 1: Input: 1 Output: true Explanation: 20 = 1 示例 2: Input: 16 Output: true E
2019-01-05
下一篇 
数组中唯一一个不重复的元素 数组中唯一一个不重复的元素
数组中唯一一个不重复的元素问题 这个题目说的是,给你一个数组求数组中唯一一个不重复的元素。 Input: [4,1,2,1,2] Output: 4 代码 两个相同的数异或的结果为 0,对所有数进行异或操作,最后的结果就是单独出现的那个数。
2019-01-05
  目录