如何通过在JavaScript上计算下一个Xi项来找到平方根n

时间:2018-07-18 10:19:08

标签: javascript sqrt

使用下一个数值方法xi + 1 =(1/2)*(xi +(A / xi))编写函数sqrt(A)以计算正实数的平方根。其中A-输入里亚尔号码; 在零迭代中,采用下一条语句:x0 = A; 错误至少应为10 ^ -6

2 个答案:

答案 0 :(得分:0)

看起来您的要求不仅仅是查找数字的平方根。如果有需要,请使用Math.sqrt。

如果您的需求是实现用于查找平方根的函数以用于教学目的,则需要编写如下的递归函数。根据需要修改代码以支持10 ^ -6

的错误

function sqrt(A, i = 0) {
  if (i === 0)
    return A;

  let prev = sqrt(A, i - 1);
  return 0.5 * (prev + (A / prev));
}

console.log(sqrt(2,1000));
console.log(sqrt(3,1000));
console.log(sqrt(9,1000));
console.log(sqrt(25,1000));

答案 1 :(得分:0)

您可以取最后一个值x i-1 并将其与新值x i 进行比较,而不使用循环计数器。

function sqrt(a, x = 1) {    // take 1 for x(0) as start value for recursion
    var y = (x + a / x) / 2; // prepare next value x(i+1)

    if (x === y) {           // exit condition
        return x;
    }
    return sqrt(a, y);       // tail call optimization 
}                            // https://stackoverflow.com/q/310974/1447675

console.log(sqrt(2));
console.log(sqrt(10));
console.log(sqrt(9));
console.log(sqrt(25));