数値の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);
}
ただし、ルートは小数である可能性があるため、すべての数値に対して機能するわけではありません。たとえば、をroot(-26, 0.8)
返しますが-58.71
、これは無効な入力です。これはまた、根に対しても間違った答えを与えるでしょう。たとえば、をroot(-2, 2)
返します-1.41421
が、-2には平方根がありません。