题目描述
•计算一个数字的立方根,不使用库函数
详细描述:
•接口说明
原型:
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)); } } }