141. Sqrt(x)牛顿迭代法求平方根 by java

Posted phdeblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了141. Sqrt(x)牛顿迭代法求平方根 by java相关的知识,希望对你有一定的参考价值。

Description

Implement int sqrt(int x).

Compute and return the square root of x.

Example

sqrt(3) = 1

sqrt(4) = 2

sqrt(5) = 2

sqrt(10) = 3

Challenge

O(log(x))

题意:求给定数的平方根,如果用一般的方法,例如二分法之类的,需要考虑一下int型的范围,别溢出。最好的方法时牛顿迭代法。代码如下:

public class Solution {
    /**
     * @param x: An integer
     * @return: The sqrt of x
     */
    public int sqrt(int x) {
        // write your code here
       //牛顿迭代法求平方根
       double p=2.0;
       double pre=0;
       while(Math.abs(p-pre)>1e-6){
           pre=p;
           p=(p+x/p)/2.0;
       }
       return (int)p;
    }
}

关于牛顿迭代法在平方根上的应用原理,参阅博客: http://www.matrix67.com/blog/archives/361

以上是关于141. Sqrt(x)牛顿迭代法求平方根 by java的主要内容,如果未能解决你的问题,请参考以下文章

牛顿迭代法python程序求平方根和立方根

算法牛顿迭代法求平方根及多次方根

算法牛顿迭代法求平方根及多次方根

求平方根的算法 牛顿迭代法和二分法

24.用牛顿迭代法求平方根

leetcode二分 | 牛顿迭代法69_Sqrt(x)