题目

实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

  1. 示例1:
  2. 输入: 4
  3. 输出: 2
  4. 示例2:
  5. 输入: 8
  6. 输出: 2
  7. 说明: 8 的平方根是 2.82842...,
  8. 由于返回类型是整数,小数部分将被舍去。

方法1:

  1. var mySqrt = function(x) {
  2. return parseInt(Math.sqrt(x))
  3. };

方法2:

var mySqrt = function(x) {
    var re = 0;
    while(!(x>=re*re && x<(re+1)*(re+1))){
        re++;
    }
    return re;
};

方法3:

牛顿法:
image.pngimage.png

var mySqrt = function(x) {
    if (x===0) return 0;
    var re = 1;
    while(!(re*re<=x&&(re+1)*(re+1)>x)){
        re = parseInt(re-(re*re-x)/(2*re))
    }
    return re
};