假设我们有一个整数;我们必须检查那是否是4的幂。
因此,如果输入类似于16,则输出将为True。
为了解决这个问题,我们将遵循以下步骤-
如果num <0,则-
返回假
如果num&(num-1)不为零,则-
返回假
如果(num&01010101010101010101010101010101)为零,则-
返回假
返回真
让我们看下面的实现以更好地理解-
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool isPowerOfFour(int num){
if (num < 0)
return false;
if (num & (num - 1))
return false;
if (!(num & 0x55555555))
return false;
return true;
}
};
main(){
Solution ob;
cout << (ob.isPowerOfFour(64));
}
64
输出结果
1