Python 逻辑定义函数
我不知道如何创建一个函数,该函数接受一个数字作为输入,并返回该数字需要除以2的最小次数,以获得等于或小于1的数字 到目前为止,我所做的是:Python 逻辑定义函数,python,python-3.x,Python,Python 3.x,我不知道如何创建一个函数,该函数接受一个数字作为输入,并返回该数字需要除以2的最小次数,以获得等于或小于1的数字 到目前为止,我所做的是: def alogical(n): min_times= n//2 return round(min_times) def逻辑(n,计数=0): 返回n导入数学;alologic=lambda x:math.ceil(math.log(x,2))这不适用于n=1的情况。结果应该是0,但它给出了1。如果n@Tagc,那么返回计数怎么样,谢谢你捕捉到
def alogical(n):
min_times= n//2
return round(min_times)
def逻辑(n,计数=0):
返回n导入数学;alologic=lambda x:math.ceil(math.log(x,2))
这不适用于n=1的情况。结果应该是0,但它给出了1。如果n@Tagc,那么返回计数怎么样,谢谢你捕捉到了这一点。您提出的解决方案违反了OP响应的规则,“不能使用循环,也不能使用if/分支”。我相信我已经想出了一个解决办法——虽然不漂亮,但与我的原始解决方案一致。“你提出的解决方案违反了OP所呼应的规则,“不能使用循环,也不能使用**if**/分支”。”这是真的,我在发布后注意到。但您的原始解决方案是否违反了该规则,因为它依赖于短路行为,这本质上意味着它具有分支逻辑?TBF我认为@cWallenpole成功了,但我还是对你的解决方案投了赞成票。
def alogical(n, count=0):
return n <= 1 and count or alogical(n / 2, count + 1)
def alogical(n):
def inner_alogical(n, count=1):
return n <= 1 and count or inner_alogical(n / 2, count + 1)
return inner_alogical(n) - 1