求解立方根

题目描述

•计算一个数字的立方根,不使用库函数

详细描述:

•接口说明

原型:

public static double getCubeRoot(double input)

输入:double 待求解参数

返回值:double  输入参数的立方根,保留一位小数

输入描述:

待求解参数 double类型

输出描述:

输入参数的立方根 也是double类型

示例1

输入

216

输出

6.0
思路:
利用牛顿迭代法求解立方根,牛顿迭代求解公式(1)所示,令键入值为y,定义函数,则本题的迭代公式如(2),直至等式(3)成立停止迭代。
tips: 四舍五入保留1位小数位的做法可以利用String的静态方法format(“%.1f”, x),其中%表示小数点前的位数,1表示保留小数点后1位,f表示转换位float型
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        //输入能转成Double的数就能进入循环
        while(sc.hasNextDouble()){
            double dd=sc.nextDouble();
            double x=1.0;
            for (; Math.abs(Math.pow(x,3)-dd)>1e-3; x=x-((Math.pow(x,3)-dd)/(3*Math.pow(x,2))));
            System.out.println(String.format("%.1f", x));
            
        }
        
    }
}

 

posted @ 2020-08-10 22:02  索爷  阅读(298)  评论(0编辑  收藏  举报