二分折半查找搞定
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
double d = in.nextDouble();
// System.out.print(d);
double high = 20;
double low = 0.1;
if (d < 0) {
high = -0.1;
low = -20;
}
double middle = (high + low) / 2;
double temp = Math.pow(middle, 3);
while (Math.abs(temp - d) > 0.01) {
if (temp > d) {
high = middle;
} else {
low = middle;
}
middle = (high + low) / 2;
temp = Math.pow(middle, 3);
}
System.out.println(String.format("%.1f", middle));
}
}

京公网安备 11010502036488号