gpt4 book ai didi

algorithm - 验证一个数字是否可以分解为 2 的幂

转载 作者:行者123 更新时间:2023-12-01 22:55:16 25 4
gpt4 key购买 nike

是否可以验证一个数是否可​​以分解为指数连续的 2 的幂之和?

是否有算法来检查这个?

示例:其中

最佳答案

二进制表示将具有单个连续的 1 位组。

要检查这一点,您可以先确定 least significant bit 的值,将该位添加到原始值,然后检查结果是否为 power of 2 .

对于给定的 x,这将得出以下公式:

(x & (x + (x & -x))) == 0

x 为零时,此表达式也为真。如果需要拒绝该案例作为解决方案,则您需要一个额外的条件。

在 Python 中:

def f(x):
return x > 0 and (x & (x + (x & -x))) == 0

关于algorithm - 验证一个数字是否可以分解为 2 的幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73406115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com