版权声明:博客内容为本人自己所写,请勿转载。 https://blog.csdn.net/weixin_42805929/article/details/82890174
求解立方根 java
题目描述
•计算一个数字的立方根,不使用库函数
详细描述:
•接口说明
原型:
public static double getCubeRoot(double input)
输入:double 待求解参数
返回值:double 输入参数的立方根,保留一位小数
输入描述:
待求解参数 double类型
输出描述:
输入参数的立方根 也是double类型
示例1
输入
216
输出
6.0
代码:
import java.util.*;
/**
* 牛顿迭代思想: x = (2*x + y/x/x)/3;
*/
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double n = sc.nextDouble();
double m = get(n);
System.out.println(String.format("%.1f",m));
}
public static double get(double n){
double a, b;
a = n;
if(n == 0){
return 0;
}
// 利用迭代法进行求解 -- 牛顿迭代法
b = (2 * a + n / a / a) / 3;
// Math.abs(x)返回指定数字x的绝对值
while(Math.abs(b - a) > 0.000001){
a = b;
b = (2 * a + n / a / a) / 3;
}
return b;
}
}
扩展:
import java.util.*;
/**
* 牛顿迭代思想: x = (3*x + y/x/x)/4;
*/
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double n = sc.nextDouble();
double m = get(n);
System.out.println(String.format("%.1f",m));
}
public static double get(double n){
double a, b;
a = n;
if(n == 0){
return 0;
}
// 利用迭代法进行求解 -- 牛顿迭代法
b = (3 * a + n / a / a) / 4;
// Math.abs(x)返回指定数字x的绝对值
while(Math.abs(b - a) > 0.000001){
a = b;
b = (3 * a + n / a / a) / 4;
}
return b;
}
}