*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相关推荐

  1. Java黑皮书课后题第7章:**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法。编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字

    **7.18(冒泡排序)使用冒泡排序算法编写一个排序方法.编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排序好的数字 题目 题目描述 冒泡排序法 / 下沉排序法 破题 代码 运 ...

  2. Java黑皮书课后题第8章:*8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置。返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标

    *8.13(定位最大的元素)编写下面的方法,返回二维数组中最大元素的位置.返回值是包含两个元素的一维数组,这两个元素表示二维数组中最大元素的行下标和列下标 题目 题目描述与运行示例 破题 代码 题目 ...

  3. Java黑皮书课后题第7章:*7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置。改写方法将参数中传递的数组倒置,并返回该数组。编写一个测试程序,输入10个数字,倒置它们并显示

    7.12(倒置数组)7.7节中的reverse方法通过复制到新数组实现倒置.改写方法将参数中传递的数组倒置,并返回该数组.编写一个测试程序,输入10个数字,倒置它们并显示 题目 题目描述 破题 代码 ...

  4. Java黑皮书课后题第7章:7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值

    7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值,并显示这个最小值 题目 题目描述与运行示例 破题 代码 ...

  5. Java黑皮书课后题第7章:7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数。编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值

    7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数.编写一个测试程序,提示用户输入10个double型值,然后调用这个方法显示平均值 题目 题目描述 破题 代码 运行实例 题 ...

  6. Java黑皮书课后题第6章:*6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数

    *6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数 题目 题目概述 破题 代码:排序 运行结果 题目 题目概述 *6.5(对三个数排序)使用下面的方法头编写方法,按升序显示三个数: p ...

  7. 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 ...

  8. Java黑皮书课后题第10章:*10.1(Time类)设计一个名为Time的类。编写一个测试程序,创建两个Time对象(使用new Time()和new Time(555550000))

    Java黑皮书课后题第10章:*10.1设计一个名为Time的类.编写一个测试程序,创建两个Time对象 题目 程序 代码 Test1.java Test1_Time.java 运行结果 UML 题目 ...

  9. Java黑皮书课后题第10章:**10.25(新的字符串split方法)String类中的split方法会返回一个字符串数组,该数组是由分隔符分隔开的子串构成的

    Java黑皮书课后题第10章:**10.25(新的字符串split方法) 题目 代码 运行实例 题目 代码 public class Test25 {public static String[] sp ...

最新文章

  1. Golang TDD实践报告:快速排序Quick Sort
  2. python --error整理(不定时更新)
  3. Centos基础优化
  4. 清华计算机系媒体所,清华大学计算机系媒体所《时光机》新年联欢会小结
  5. Matlab | Matlab从入门到放弃(16)——二维图和三维图
  6. CodeCraft-20 (Div. 2) C. Primitive Primes 思维 + 数论
  7. Python的1~100奇数之和
  8. C语言入栈算法,栈的入栈、出栈、获取栈顶的c语言算法
  9. Java 数组 定义一个数组,获取数组中的最大值和最小值,奇数个数和偶数个数...
  10. base64与图片互换
  11. Powershell-获取Hyper-V复制状态
  12. 「实战篇」开源项目docker化运维部署-搭建mysql集群(四)
  13. ios社交app源码_iOS中的社交媒体集成
  14. WOW战斗逻辑系统分析
  15. html中span跟div属性,HTML 的 div 和 span 标签
  16. 酷睿i7 11700什么水平 i711700怎么样 i7 11700属于高端吗
  17. kubeadm reset重新初始化过程
  18. 【学习笔记】深蓝学院-三维点云处理
  19. win10系统如何连接到无线显示器?
  20. 深度优先和广度优先区别

热门文章

  1. Applese 的回文串(加一个字符的回文)
  2. 阿里云自研数据库支撑双11,助力电商客户订单峰值突破每秒20万笔
  3. 云开发系列课程让你从入门到精通快速上手Serverless和云开发技术
  4. 阿里云原生多模数据库Lindorm联合东软云科技,赋能车联网数字化运营运维创新升级
  5. 云话题 | 5G消息是什么?
  6. “宜小搭”萌新报到,请多关照!
  7. 还在为系统迁移烦恼?掌握这些“基本法”解锁更多可能
  8. android handler作用,3.2.4 Handler的作用
  9. 《伊拉图斯死之主》:硬核游戏也有相对放松的游戏体验
  10. 使用Nginx反向代理部署laravel和history模式的Vue项目[更新]