Chúng ta cần viết hàm JavaScript nhận vào số nguyên không âm và tính toán, trả về căn bậc hai của nó. Có thể làm tròn xuống số thực thành số nguyên.
Ví dụ: Với số 15, không cần trả về giá trị chính xác, chỉ trả về số nguyên gần nhất nhỏ hơn là 3.
Sử dụng thuật toán tìm kiếm nhị phân để hội tụ đến căn bậc hai.
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));Kết quả
Kết quả in ra console:
2 27 3 233