您的位置:首页 > 其它

leetcode 342. Power of Four 解题报告

2016-06-25 21:41 429 查看
原题链接

解题思路

刚开始题目理解错了,不过仔细审题后轻松解决

首先把特殊数字处理了,即非正数和1

将要处理的数字num & (num-1)。这样可以得出其总共有几个1(二进制)

若只有最高位为1,那再判断其二进制0的总个数是否是2的倍数。(4的二进制是两个0)。

得出答案。

解题代码

public class Solution {
public boolean isPowerOfFour(int num) {
if(num<=0){
return false;
}
if(num ==1 ) return true;
int a = num & (num-1);
if(a==0&&(((Integer.toBinaryString(num)).length()-1)&1)==0) return true;
else return false;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode