算法--牛顿迭代法

法一:

用二分查找找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;
    }
相关推荐
倔强的小石头_2 小时前
【C语言指南】函数指针深度解析
java·c语言·算法
Yasin Chen2 小时前
C# Dictionary源码分析
算法·unity·哈希算法
_Coin_-3 小时前
算法训练营DAY27 第八章 贪心算法 part01
算法·贪心算法
kangkang-5 小时前
PC端基于SpringBoot架构控制无人机(三):系统架构设计
java·架构·无人机
许小燚7 小时前
线性表——双向链表
数据结构·链表
界面开发小八哥7 小时前
「Java EE开发指南」如何用MyEclipse创建一个WEB项目?(三)
java·ide·java-ee·myeclipse
董董灿是个攻城狮7 小时前
5分钟搞懂什么是窗口注意力?
算法
Dann Hiroaki7 小时前
笔记分享: 哈尔滨工业大学CS31002编译原理——02. 语法分析
笔记·算法
idolyXyz7 小时前
[java: Cleaner]-一文述之
java
一碗谦谦粉7 小时前
Maven 依赖调解的两大原则
java·maven