Alogical定义函数Python

时间:2017-09-29 03:26:00

标签: python python-3.x

我不确定如何创建一个以数字作为输入的函数,并返回该数字需要除以2的最小次数,以便得到一个等于或小于1的数字?

到目前为止,我所做的一切:

def alogical(n):
   min_times= n//2
   return round(min_times)

1 个答案:

答案 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

现在开心吗? ; - )