如何判断一个函数的结果是否为2的幂?

问题描述

我正在尝试为Collat​​z序列优化代码。我意识到,如果该序列的结果为2的幂,它将直接前进1。我试图获取该结果,以使该函数的结果为2的幂,程序将显示“ 2“。


def collatz(number):
    if number % 2 == 0:
        print(number // 2)
        return number // 2

    elif number % 2 == 1:
        result = (3 * number + 1) // 2
        print(result)
        return result
    power = log(result,2)
    if power - int(power) == 0:
        end = "Power of 2"
        print(end)
n = input("Choose an integer: ")
while n != 1:
    n = collatz(int(n)) 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...