SQRT without Math (Recursive)

by ronilan

JavaScript

// SQRT without Math (Recursive)

function _sqrt(solve, start, end) {

  var accuracy = 0.000000000000001;
  var guess = start + (end - start) / 2;

  if (guess * guess < solve) {
    start = guess;
  } else {
    end = guess;
  }

  // stop condition
  if (Math.abs(guess * guess - solve) > accuracy) {
    guess = _sqrt(solve, start, end);
  }

  return guess;
}

function sqrt(solve) {

  var result = NaN;
  var start = 0;
  var end = solve;

  if (solve < 1) {
    start = solve;
    end = 1
  }

  if (solve > 0) {
    result = _sqrt(solve, start, end);
  }

  return result;
}

console.log(sqrt(256), Math.sqrt(256));
console.log(sqrt(2), Math.sqrt(2));
console.log(sqrt(0.49), Math.sqrt(0.49));