class Solution {
public:
bool isPowerOfFour(int num) {
/*
16 10000 4的倍数的二进制数字中0的个数为偶数个
zeroCount : 统计转换成二进制数据中0的个数
tmp : 用来保存二进制结果
*/
if (num <= 0) return false;
if (num == 1) return true;
vector<int> tmp;
int zeroCount = 0;
while (num > 0) {
tmp.push_back(num % 2);
num = num / 2;
}
for (auto item : tmp) {
cout << item << endl;
}
// 判断数组的长度也是个问题
if (tmp[tmp.size() - 1] == 1) {
int i = tmp.size() - 2;
for (i >= 0; i >= 0; i--) {
if (tmp[i] == 0) {
zeroCount = zeroCount + 1;
}
// 刚开始忘了这一句,只去考虑了计算0个个数,如果一旦前size-1数字中出现1,那么肯定不是幂
else
return false;
}
if (zeroCount > 0 && zeroCount % 2 == 0)
return true;
else
return false;
}
else
return false;
return false;
}
};
leetcode 342 Power of 4
Guess you like
Origin http://43.154.161.224:23101/article/api/json?id=324762051&siteId=291194637
Recommended
Ranking