我需要做一个递归函数power(x,n),它将提升x的结果返回到第9个power(xn)

2024-09-19 20:46:19 发布

您现在位置:Python中文网/ 问答频道 /正文

def numPotencia(x, n):
    if isinstance(x,int) and isinstance(n,int):
            return aux_xPower(abs(x), abs(n));
    else:
        print("\n""Error: The number needs to be a integer");


def aux_xPower(x,n):
    if n == 0:
        return 1;
    elif n == 1:
        return x;
    else:
        return x * aux_xPower(x-1,n)

Tags: andthenumberreturnifdeferrorabs
3条回答
return x * aux_xPower(x-1,n) 

您的代码行应该更正为

return x * aux_xPower(x,n-1)

因为基础不应该改变。只有力量才能重现

你就快到了。现在,您的代码将计算如下表达式:

x * (x - 1) * (x - 2) * (x - 3) * ... (does not terminate)

你需要做的是改变这一点:

return x * aux_xPower(x - 1, n)

对此:

return x * aux_xPower(x, n - 1)

这是必要的,因为x^n = x * x^(n - 1)x^n = x * (x - 1)^n

重写这一行并尝试

return x * aux_xPower(x-1,n)

return x * aux_xPower(x,n-1)

你的基地应该每次都是一样的。

相关问题 更多 >