题解 | #求解立方根# 两个for循环解决
求解立方根
https://www.nowcoder.com/practice/caf35ae421194a1090c22fe223357dca
import java.math.BigDecimal;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double num = sc.nextDouble();
boolean moreZero = num >= 0;
if (!moreZero) {
num = -num;
}
double min = 0;
double max = 0;
for (int i = 0; i <= Math.sqrt(num); i++) {
for (double j = 0; j < 1; j = j + 0.1) {
double k = new BigDecimal(i).add(new BigDecimal(j)).doubleValue();
if (k * k * k <= num) {
min = k;
} else {
max = k;
break;
}
}
if (max > 0) {
break;
}
}
double result = min;
if (Math.abs((num - min * min * min)) > Math.abs((num - max * max * max))) {
result = max;
}
System.out.println(moreZero ? result : -result);
}
}
#Java#