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)
问问题
7903 次
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 回答