38: 立方根getCubeRoot
题目描述:计算一个数字的立方根,不使用库函数
•接口说明
原型:public static double getCubeRoot(double input)
输入:double 待求解参数
返回值:double 输入参数的立方根
输入描述:待求解参数 double类型
输出描述:输入参数的立方根 也是double类型
输入例子:
216
输出例子:
6.0
1 import java.util.Scanner; 2 3 /*题目描述:计算一个数字的立方根,不使用库函数 4 •接口说明 5 原型: 6 public static double getCubeRoot(double input) 7 输入:double 待求解参数 8 返回值:double 输入参数的立方根 9 输入描述:待求解参数 double类型 10 输出描述:输入参数的立方根 也是double类型 11 输入例子: 12 216 13 输出例子: 14 6.0*/ 15 public class Main { 16 17 public static void main(String[] args) { 18 Scanner in = new Scanner(System.in); 19 while(in.hasNextDouble()) 20 { 21 double input = in.nextDouble(); 22 double result = getCubeRoot(input); 23 System.out.printf("%.1f\n", result); 24 //System.out.println(result); 25 } 26 } 27 public static double getCubeRoot(double input) 28 { 29 //二分 30 double left = 0; 31 double right = input; 32 double mid = (left + right)/2; 33 while(right - left > 0.01) 34 { 35 mid = (left + right)/2; 36 if(mid*mid*mid < input) 37 { 38 left = mid; 39 40 } 41 else if(mid*mid*mid > input) 42 { 43 right = mid; 44 } 45 else 46 return mid; 47 } 48 return mid; 49 } 50 51 }