Java黑皮书课后题第6章:**6.22(数学:平方根的近似求法)实现Math类中dsqrt方法的技术:巴比伦法nextGuess = (lastGuess + n / lastGuess) / 2
*6.22(数学:平方根的近似求法)巴比伦法nextGuess = (lastGuess + n / lastGuess) / 2
- 题目
- 题目描述与破题
- 代码
- 运行示例
题目
题目描述与破题
翻译成人话:
想求n的平方根,可以先给lastGuess从1、2开始代入任意一个正整数值;代入公式直到nextGuess<lastGuess(由于是double值:应该是nextGuess-lastGuess<0.0001;
这时假设nextGuess为a,那么下一轮lastGuess的取值就应该是[a, a+1]
本轮再从a-1+0.01开始代入,每轮增加0.01,直到nextGuess-lastGuess<0.0001
将本轮nextGuess值看作n的平方根
实现下面方法返回n的平方根:public static double sqrt(long n)
主方法:接收需要求平方根的n值(以long接收),传入n值
sqrt方法:求n的平方根并返回值给主方法
代码
import java.util.Scanner;public class Test6_22 {public static void main(String[] args) {// 接收需要求平方根的n值(以long接收)Scanner input = new Scanner(System.in);System.out.print("请输入一个n值:");long n = input.nextLong();// 传入n值double feedback = sqrt(n);// 返回sqrt值System.out.println(feedback);}public static double sqrt(long n){// 第一轮:lastGuess取整double nextGuess = 2, lastGuess = 0;for (lastGuess = 1 ; nextGuess - lastGuess >= 0.0001 ; lastGuess++){nextGuess = (lastGuess + n / lastGuess ) / 2;}// 第二轮:获取lastGuess大致范围后精确到小数点后两位for (lastGuess = nextGuess; nextGuess - lastGuess >= 0.0001 ; lastGuess += 0.01){nextGuess = (lastGuess + n / lastGuess ) / 2;}return nextGuess;}
}
运行示例
请输入一个n值:16
4.0
请输入一个n值:10
3.166666666666667
Java黑皮书课后题第6章:**6.22(数学:平方根的近似求法)实现Math类中dsqrt方法的技术:巴比伦法nextGuess = (lastGuess + n / lastGuess) / 2相关推荐
- Java黑皮书课后题第7章:**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法。编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字
**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法.编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字 题目 题目描述 冒泡排序法 / 下沉排序法 破题 代码 运 ...
- Java黑皮书课后题第8章:*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置。返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标
*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置.返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标 题目 题目描述与运行示例 破题 代码 题目 ...
- Java黑皮书课后题第7章:*7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置。改写方法将参数中传递的数组倒置,并返回该数组。编写一个测试程序,输入10个数字,倒置它们并显示
7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置.改写方法将参数中传递的数组倒置,并返回该数组.编写一个测试程序,输入10个数字,倒置它们并显示 题目 题目描述 破题 代码 ...
- Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值
7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...
- Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值
7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数.编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值 题目 题目描述 破题 代码 运行实例 题 ...
- Java黑皮书课后题第6章:*6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数
*6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数 题目 题目概述 破题 代码:排序 运行结果 题目 题目概述 *6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数: p ...
- Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类)设计一个名为Person的类及其两个名为Student和Employee的子类
Java黑皮书课后题第11章:11.2(Person Student Employee Faculty Staff类) 题目 缺陷 UML图 代码 Test02_MyDate.java:用于参考的My ...
- Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))
Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...
- Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的
Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...
最新文章
- Golang TDD实践报告:快速排序Quick Sort
- python --error整理(不定时更新)
- Centos基础优化
- 清华计算机系媒体所,清华大学计算机系媒体所《时光机》新年联欢会小结
- Matlab | Matlab从入门到放弃(16)——二维图和三维图
- CodeCraft-20 (Div. 2) C. Primitive Primes 思维 + 数论
- Python的1~100奇数之和
- C语言入栈算法,栈的入栈、出栈、获取栈顶的c语言算法
- Java 数组 定义一个数组,获取数组中的最大值和最小值,奇数个数和偶数个数...
- base64与图片互换
- Powershell-获取Hyper-V复制状态
- 「实战篇」开源项目docker化运维部署-搭建mysql集群(四)
- ios社交app源码_iOS中的社交媒体集成
- WOW战斗逻辑系统分析
- html中span跟div属性,HTML 的 div 和 span 标签
- 酷睿i7 11700什么水平 i711700怎么样 i7 11700属于高端吗
- kubeadm reset重新初始化过程
- 【学习笔记】深蓝学院-三维点云处理
- win10系统如何连接到无线显示器?
- 深度优先和广度优先区别
热门文章
- Applese 的回文串(加一个字符的回文)
- 阿里云自研数据库支撑双11,助力电商客户订单峰值突破每秒20万笔
- 云开发系列课程让你从入门到精通快速上手Serverless和云开发技术
- 阿里云原生多模数据库Lindorm联合东软云科技,赋能车联网数字化运营运维创新升级
- 云话题 | 5G消息是什么?
- “宜小搭”萌新报到,请多关照!
- 还在为系统迁移烦恼?掌握这些“基本法”解锁更多可能
- android handler作用,3.2.4 Handler的作用
- 《伊拉图斯死之主》:硬核游戏也有相对放松的游戏体验
- 使用Nginx反向代理部署laravel和history模式的Vue项目[更新]