Я работаю над тем, как вычислить корень 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 не имеет квадратного корня.