第 n 个根实现
我正在研究一种计算数字的第n个根的方法。但是,我在负数的第n个根上遇到了问题。
大多数人说要使用,但这不适用于负数。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);
}
但是,它不适用于所有数字,因为根可以是小数。例如,返回 ,但这是一个无效的输入。这也将给出错误的答案,即使是根。例如返回 ,但 -2 没有平方根。root(-26, 0.8)
-58.71
root(-2, 2)
-1.41421