实现sqrt算法
2022-05-13 16:53 钟铧若岩 阅读(52) 评论(0) 编辑 收藏 举报
1 package com.company; 2 3 4 import org.junit.Test; 5 6 public class Lesson3_2 { 7 8 /** 9 * @Description: 计算大于1的正整数之*方根 10 * @param n-待求的数, deltaThreshold-误差的阈值, maxTry-二分查找的最大次数 11 * @return double-*方根的解 12 */ 13 public static double getSqureRoot(int n, double deltaThreshold, int maxTry) { 14 15 if (n <= 1) { 16 return -1.0; 17 } 18 19 double min = 1.0, max = (double)n; 20 for (int i = 0; i < maxTry; i++) { 21 double middle = (min + max) / 2; 22 double square = middle * middle; 23 double delta = Math.abs((square / n) - 1); 24 if (delta <= deltaThreshold) { 25 return middle; 26 } else { 27 if (square > n) { 28 max = middle; 29 } else { 30 min = middle; 31 } 32 } 33 } 34 35 return -2.0; 36 37 } 38 39 @Test 40 public void Test1() 41 { 42 int number = 10; 43 double squareRoot = Lesson3_2.getSqureRoot(number, 0.000001, 10000); 44 if (squareRoot == -1.0) { 45 System.out.println("请输入大于1的整数"); 46 } else if (squareRoot == -2.0) { 47 System.out.println("未能找到解"); 48 } else { 49 System.out.println(String.format("%d的*方根是%f", number, squareRoot)); 50 } 51 } 52 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2015-05-13 WINDOWS权限大牛们,请进