给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。
输入: 16 输出: true
输入: 5 输出: false
进阶: 你能不使用循环或者递归来完成本题吗?
impl Solution {
pub fn is_power_of_four(num: i32) -> bool {
let mut num = num;
if num <= 0 {
false
} else {
while num % 4 == 0 {
num /= 4;
}
num == 1
}
}
}
impl Solution {
pub fn is_power_of_four(num: i32) -> bool {
(num > 0) && (num & 0x55555555 == num) && (num & (num - 1) == 0)
}
}