博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
求解立方根
阅读量:6600 次
发布时间:2019-06-24

本文共 1254 字,大约阅读时间需要 4 分钟。

hot3.png

题目描述

计算一个数字的立方根,不使用库函数详细描述:    接口说明    原型:    public static double getCubeRoot(double input)    输入:double 待求解参数    返回值:double  输入参数的立方根

输入描述

待求解参数 double类型

输出描述

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

输入例子

216

输出例子

6.0

算法实现

import java.util.Scanner;/** * Declaration: All Rights Reserved !!! */public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);//        Scanner scanner = new Scanner(Main.class.getClassLoader().getResourceAsStream("data.txt"));        while (scanner.hasNext()) {            double d = scanner.nextDouble();            System.out.printf("%.1f", getCubeRoot(d));        }        scanner.close();    }    /**     * 使用牛顿迭代法求立方根     * 已知利用牛顿迭代法求方程F(x)=0的解的公式为X[n+1] = X[n] - F(X[n])/F'(X[n]),     * 其中x[n]为第n次利用此公式求得值。     * 假如函数F(X) = X^m - a, 则根据牛顿迭代法第n+1次求方程F(x) = 0的解为X[n+1],     * 且X[n+1] = (1-1/m)*X[n] +a/(n*X[n]^(m-1))  -  (X[n]*X[n]*X[n]+a)/3*X[n]*X[n]。     *     * @param x     * @return     */    private static double getCubeRoot(double x) {        double x0;        double x1 = x;        do {            x0 = x1;            x1 = 2.0 / 3.0 * x0 + x / 3.0 / (x0 * x0);        } while (Math.abs(x1 - x0) > 0.000001);        return x1;    }}

转载于:https://my.oschina.net/u/2822116/blog/822765

你可能感兴趣的文章
nginx安装与配置2(转载)
查看>>
Linux下Mongodb安装和启动配置
查看>>
2015 成长计划
查看>>
禁止用户远程登录ssh访问控制设置
查看>>
RHEL6.3配置FTP服务器(2) 本地用户下载和上传
查看>>
oracle数据库开机自启
查看>>
R语言实战(八)广义线性模型
查看>>
系統用戶管理
查看>>
CCIE/CCDE笔试考试政策
查看>>
11.22红帽OpenStack技术研讨会诚邀您免费参加
查看>>
flutter练手DEMO - 网易云音乐(未完成)
查看>>
OC_GCD的基本使用
查看>>
Python知识点总结篇(一)
查看>>
沈阳一饭店凌晨爆燃,燃气报警器时刻预防
查看>>
Redis 与 数据库处理数据的两种模式
查看>>
python 实现 loadrunner xml脚本格式化
查看>>
项目总结13:Jav文件压缩-InputStream转化为base64-Base64解码并生成图片
查看>>
画图工具之优化篇
查看>>
关于理想团队的构建和对软件流程的理解
查看>>
js日期
查看>>