我对编程还不太熟悉,正试图想出一种递归计算x^n的方法(理解数学背后的解释以及递归计算x^n之间的区别):

double power(double x, int n)
{
    if (n == 0)
        return 1.0;

    return x * power(x, n - 1)
}

最佳答案

x-n在数学上等于1/xn,因此您可以采用经典的xn递归计算来处理它:

double power (double x, int n) {
    if (n < 0) {
        return 1.0 / power(x, -1 * n);
    }
    if (n == 0) {
        return 1.0;
    }
    return x * power (x, n - 1);
}

关于algorithm - 递归计算x ^ -n,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32723640/

10-09 15:59