0
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)
4

3 回答 3

4

您快到了。现在,您的代码将评估如下表达式:

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

于 2013-05-02T05:12:01.593 回答
0

重写这一行并尝试

return x * aux_xPower(x-1,n)

return x * aux_xPower(x,n-1)

您的基础每次都应该相同。

于 2013-05-02T05:12:52.657 回答
-3
return x * aux_xPower(x-1,n) 

这行代码应该更正为

return x * aux_xPower(x,n-1)

因为基础不应该改变。只有权力应该递归

于 2017-06-22T23:21:53.693 回答