使用递归查找力

问题描述 投票:5回答:2

在Python 3中]

def power(base,exponent):
    if exponent == 1:
        return base
    return base * power(base, exponent - 1)

我没有考虑过极端情况(指数<= 0)

为什么不使用上面编写的代码代替使用Divide and Conquer Technique计算的代码,所以该代码看起来更简单易懂?这段代码效率是否低下?

在Python 3中,def power(base,exponent):if exponent == 1:return base return base * power(base,exponent-1)我没有考虑过极端情况(exponent <= 0)为什么我们不使用...

python recursion
2个回答
3
投票

这些是使用您的代码计算2 ^ 8的步骤:


0
投票

是的,如果不是尾递归的,这可能会效率较低。递归创建的堆栈帧数量过多,可能会耗尽内存。正确的方法是使用尾递归来表达它。您只需要使用一个变量来存储结果acc,此处它将在一个变量中评估结果,而不是进行递归函数调用

© www.soinside.com 2019 - 2024. All rights reserved.