在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)为什么我们不使用...
这些是使用您的代码计算2 ^ 8的步骤:
是的,如果不是尾递归的,这可能会效率较低。递归创建的堆栈帧数量过多,可能会耗尽内存。正确的方法是使用尾递归来表达它。您只需要使用一个变量来存储结果acc
,此处它将在一个变量中评估结果,而不是进行递归函数调用