直来直去的思路:先求整数部分,再遍历小数部分
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
doCube(a);
}
private static void doCube(double num) {
// 先求出整数部分
int a = 0;
if (num > 0){
for (int i = 0; i < num; i++) {
if (i * i * i <= num && (i+1) * (i+1) * (i+1) > num ) {
a = i;
break;
}
}
}else {
for (int i = 0; i < -num; i++) {
if (i * i * i < -num && (i+1) * (i+1) * (i+1) >= -num ) {
a = -1 - i;
break;
}
}
}
// 再求小数部分
for (int i = 0; i <= 99; i++) {
if ((a+0.01*i)*(a+0.01*i)*(a+0.01*i) >= num) {
System.out.printf("%.1f",a+0.01*i);
break;
}
}
}
}