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