Реализация n-го корня

Я работаю над способом вычисления корня n th числа. Однако у меня проблемы с корнем n th из отрицательных чисел.

Большинство людей говорят использовать Math.pow (num, 1 / root) , но это не так. работают с отрицательными числами.

Я пробовал следующее:

public static double root(double num, double root) {
    if (num < 0) {
        return -Math.pow(Math.abs(num), (1 / root));
    }
    return Math.pow(num, 1.0 / root);
}

, но это не работает для всех чисел, поскольку корень может быть десятичным. Например, root (-26, 0.8) возвращает -58.71 , но это неверный ввод. Это также даст неправильный ответ для четных корней. Например, root (-2, 2) возвращает -1,41421 , но -2 не имеет квадратного корня.

20
задан Dukeling 6 September 2013 в 07:22
поделиться