2019-04-21 吴亲库里 库里的深夜食堂
给个整数,判断是否是4的幂次方
题目让我们不使用递归或者循环,我们先使用循环或者递归实现一遍。
/**
* @param Integer $num
* @return Boolean
*/
function isPowerOfFour($num) {
while($num && $num%4==0){
$num =floor($num/4);
}
return $num==1;
}
想不循环和递归,那就需要找到规律,只要是4的幂次方的数,那么把它减去一之后都可以被3整除,调整一下就压榨成一行了。
/**
* @param Integer $num
* @return Boolean
*/
function isPowerOfFour($num) {
return $num>0 && !($num & ($num-1)) && ($num-1)%3==0;
}