首页 > 其他分享 >Leetcode69(牛顿迭代)

Leetcode69(牛顿迭代)

时间:2023-03-07 21:59:09浏览次数:29  
标签:迭代 Leetcode69 牛顿 0.5 整数 int low

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。

由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。

注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。

这里看到用数学方法做的,记录一下

public int mySqrt(int x) {
        //二分法
       /* int low = 0, high = x, ans = -1;
        while (low <= high){
            int mid = (low + high) / 2;
            if((long)mid * mid <= x){
                ans = mid;
                low = mid + 1;
            }else {
                high = mid - 1;
            }

        }
        return  ans;*/
        // 数学方法(牛顿迭代)
        if(x == 0)
            return 0;
        double c = x,x0 = x;
        while(true){
            double xi = x0 + (c / x0 - x0) / 2;
            if(Math.abs(x0 - xi) < 1e-7)
                break;
            x0 = xi;
        }
        return (int)x0;
    }

标签:迭代,Leetcode69,牛顿,0.5,整数,int,low
From: https://www.cnblogs.com/xie213/p/17189809.html

相关文章

  • 迭代器
    内置有__iter__方法的对象都是可迭代对象'''内置的意思是python自带的,解释器中已经存在的,我们可以直接使用的'''目前所学的数据类型#目前我所学的数据类型中,有哪些是可......
  • Python 异步: 异步迭代器(15)
    动动发财的小手,点个赞吧!迭代是Python中的基本操作。我们可以迭代列表、字符串和所有其他结构。Asyncio允许我们开发异步迭代器。我们可以通过定义一个实现aiter()和......
  • python - 生成器与迭代器
    2、生成器的用法#生成器的作用是节省空间,生成器就是迭代器的一种#defindex():#print('index')#yield123#yield后面如果没有加参数会打印none#......
  • lterator迭代器-Generator生成器
    什么是迭代器 迭代器iterator,使用户在容器对象(container,例如链表或数组)上遍访的对象,使用该接口无需关心对象的内部实现细节。他就跟数据库中的光标,迭代器最早出现在1......
  • 迭代器
    指针与迭代器区别指针:指向的是原始对应的内存地址,也属于迭代器中的一种能够指向函数迭代器:功能上类似指针,迭代器是类模板通过重载指针一下操作符,来封装指针使用......
  • 设计模式-javascript实现【迭代器模式】
    定义:迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之......
  • 迭代法方程求根
    求根的算法,除了迭代法,还有牛顿迭代法,用切线(一阶泰勒)近似,弦截法设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0。(2......
  • ES6-ES11 迭代器介绍
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><tit......
  • ES6-ES11 迭代器应用-自定义遍历数据
    原视频<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><titl......
  • Conllection集合(迭代器)
      使用Lambda表达式进行筛选删除。上面的表达式的判断条件是:传入一个字符,判断他的长度是不是等于3,是3就删除。迭代器:(迭代器被创建就会指向集合0索引处) 创建迭......