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 に答える