算法--牛顿迭代法

法一:

用二分查找找target 的中间值,就是target的平方根

java 复制代码
public int mySqrt(int x) {
        int l = 0, r = x;
        while (l <= r) {
            int mid = l + (r - l) / 2;
            if ((long) mid * mid <= x) {
                
                l = mid + 1;
            } else {
                r = mid - 1;
            }
        }
        return l-1;
    }

牛顿迭代法

解题思路参考:69. x 的平方根 - 力扣(LeetCode)

同样的方法可以用在其它的近似值计算中

java 复制代码
   public int mySqrt(int a) {
        long x = a;
        while (x * x > a) x = (x + a / x) / 2;
        return (int)x;
    }
相关推荐
揣晓丹8 分钟前
JAVA实战开源项目:健身房管理系统 (Vue+SpringBoot) 附源码
java·vue.js·spring boot·后端·开源
编程轨迹_9 分钟前
使用 Spring 和 Redis 创建处理敏感数据的服务
java·开发语言·restful
奔驰的小野码15 分钟前
SpringAI实现AI应用-自定义顾问(Advisor)
java·人工智能·spring boot·spring
赵和范19 分钟前
C++:书架
开发语言·c++·算法
奔驰的小野码20 分钟前
SpringAI实现AI应用-使用redis持久化聊天记忆
java·数据库·人工智能·redis·spring
裁二尺秋风35 分钟前
k8s(11) — 探针和钩子
java·容器·kubernetes
tmiger1 小时前
图像匹配导航定位技术 第 10 章
人工智能·算法·计算机视觉
wuxiguala1 小时前
【文件系统—散列结构文件】
linux·算法
keepDXRcuriosity1 小时前
深入探索快速排序算法:原理与 C 语言实现
c语言·算法·排序算法
一方~1 小时前
XML语言
xml·java·web