zoukankan      html  css  js  c++  java
  • [leedcode 69] Sqrt(x)

    Implement int sqrt(int x).

    Compute and return the square root of x.

    public class Solution {
        //本题利用了牛顿迭代法:设r是f(x) = 0的根(x^2-k=f(x)),选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0     //)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。
    
        //过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值     //序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。
        //根据牛顿迭代的原理,可以得到以下的迭代公式:X(n+1)=[X(n)+p/Xn]/2
        //还可以用常识性知识考虑,x=(x+k/x)/2
        
        //本题注意点:
        //1.返回结果要先声明为double
        //2.需要检查参数的正负
        //3.注意1e-6的写法
        
        
    
    
        public int mySqrt(int x) {
            if(x<=0) return 0;
            double res=1.0;
            while(Math.abs(res*res-x)>1e-6){
                res=(res+x/res)/2;
            }
            return (int)res;
        }
    }
  • 相关阅读:
    idea快捷键
    idea抛异常方式
    scott登陆PLSQL时候出现insufficient privileges的解决方法
    Linux下磁盘实战操作命令
    Docker容器常用命令
    Docker启动守护式容器
    Docker命令总结
    Docker镜像常用命令
    Centos7系统Docker安装
    Docker组成三要素
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4644085.html
Copyright © 2011-2022 走看看