算法--牛顿迭代法

法一:

用二分查找找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;
    }
相关推荐
小咖拉眯1 分钟前
L2-033 简单计算器满分笔记
笔记·算法
敲上瘾11 分钟前
线程池的封装(c/c++)
linux·服务器·c++·算法·缓存·池化技术
何似在人间57517 分钟前
SpringAI+DeepSeek大模型应用开发——3 SpringAI简介
java·ai·大模型开发·spring ai
长安城没有风24 分钟前
从入门到精通【MySQL】 JDBC
java·mysql
代码程序猿RIP25 分钟前
C++(22)—内存管理
开发语言·数据结构·c++·算法
qq_4017808231 分钟前
1.凸包、极点、极边基础概念
算法
忘梓.39 分钟前
解锁动态规划的奥秘:从零到精通的创新思维解析(9)
算法·动态规划·代理模式
东雁西飞41 分钟前
MATLAB 控制系统设计与仿真 - 34
开发语言·单片机·算法·matlab·工业机器人
薯条不要番茄酱1 小时前
【JavaEE初阶】多线程重点知识以及常考的面试题-多线程进阶(三)
java·java-ee
杰杰批1 小时前
力扣热题100——普通数组(不普通)
算法·leetcode