假设我们有一个整数;我们必须检查那是否是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