给出两个数字a和b。您需要找到最接近b的a的幂

时间:2019-01-06 11:49:32

标签: python

例如a是2,b是8,那么结果应该是8(2提高到3)。 第二个示例a是3,b是7,结果将是3(3提高到1)

我使用了以下功能,如何使它更有效?

def nearestPower(a,b):
    n=1
    for i in range(1, b) :
        if(pow(a,i)<=b):
            n=pow(a,i)
        else:
            break
    return(n)

1 个答案:

答案 0 :(得分:0)

如果您只需要答案,并取决于要执行的操作(此处似乎您想要的是a的最接近的较低幂):

hi i
i am
am a
a human
human named
named joe
joe norman

如果只需要迭代代码:

from math import log, floor, ceil
def nearestLowerPower(a,b):
    return a ** floor(log(b)/log(a))
def nearestUpperPower(a,b):
    return a ** ceil(log(b)/log(a))
def nearestPower(a,b):
    return a ** round(log(b)/log(a))

请确保声明a> = 1,b> = 1并使用有限值。