要求:计算一个数字的立方根,不使用库函数
输入:double 待求解参数
返回值:double 输入参数的立方根,保留一位小数
思路:二分法
import java.util.*;
public class Main{
public static double getCubeRoot(double input)
{
double min = 0;
double max = input;
double mid = 0;
// 注意,这里的精度要提高一点,否则某些测试用例无法通过
while ((max - min) > 0.001)
{
mid = (max + min) / 2;
if (mid * mid * mid > input)
max = mid;
else if (mid * mid * mid < input)
min = mid;
else
return mid;
}
return max;
}
public static void main(String [] args){
Scanner s=new Scanner(System.in);
double input =s.nextDouble();
double result=getCubeRoot(input);
System.out.printf("%.1f\n",result);
}
}