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 }

 

posted @ 2016-08-29 17:33  sunshinelym  阅读(707)  评论(0编辑  收藏  举报