我不确定如何创建一个以数字作为输入的函数,并返回该数字需要除以2的最小次数,以便得到一个等于或小于1的数字?
到目前为止,我所做的一切:
def alogical(n):
min_times= n//2
return round(min_times)
答案 0 :(得分:1)
def alogical(n, count=0):
return n <= 1 and count or alogical(n / 2, count + 1)
我使用逻辑快捷方式代替if / branching语句。 Sorta弯曲规则。
这对于n = 1的情况不起作用。结果应为0但是 它给出了1. - Tagc
精细:
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
现在开心吗? ; - )