假设我们有一个数字n和另一个值x,我们必须检查它是否是x的幂,其中x是2的幂。
因此,如果输入类似于n = 32768 x = 32,则输出将为True,因为n为x ^ 3。
让我们看下面的实现以更好地理解-
def find_pow_of_2(n): return (1 + find_pow_of_2(n / 2)) if (n > 1) else 0 def solve(n, c): cnt = 0 if n and (n & (n - 1)) == 0: while n > 1: n >>= 1 cnt += 1 return cnt % (find_pow_of_2(c)) == 0 return False n = 32768 x = 32 print(solve(n, x))
32768, 32输出结果
True