Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm căn bậc hai của một số không âm mà không sử dụng JavaScript Math.sqrt ()

Chúng tôi được yêu cầu viết một hàm JavaScript nhận Số nguyên không âm và tính toán và trả về căn bậc hai của nó. Chúng ta có thể chuyển một số dấu phẩy động thành một số nguyên.

Ví dụ:Đối với số 15, chúng ta không cần trả về giá trị chính xác, chúng ta chỉ có thể trả về giá trị số nguyên nhỏ hơn gần nhất sẽ là 3, trong trường hợp là 15

Chúng tôi sẽ sử dụng thuật toán tìm kiếm nhị phân để chuyển đổi với căn bậc hai của một số nhất định.

Mã cho điều này sẽ là -

Ví dụ

const squareRoot = (num = 1) => {
   let l = 0; let r = num; while(l <= r) {
      const mid = Math.floor((l + r) / 2);
      if(mid ** 2 === num){ return mid;
         }else if(mid ** 2 > num){
            r = mid - 1;
      }
      else{ l = mid + 1;
   };
};
return r; };
console.log(squareRoot(4));
console.log(squareRoot(729));
console.log(squareRoot(15));
console.log(squareRoot(54435));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

2
27
3
233