Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหารากที่สองของจำนวนที่ไม่ใช่ค่าลบโดยไม่ต้องใช้ Math.sqrt() JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับจำนวนเต็มที่ไม่เป็นลบและคำนวณและส่งคืนรากที่สอง เราสามารถกรอเลขทศนิยมให้เป็นจำนวนเต็มได้

ตัวอย่างเช่น สำหรับตัวเลข 15 เราไม่จำเป็นต้องคืนค่าที่แม่นยำ เราก็แค่คืนค่าจำนวนเต็มที่น้อยกว่าที่ใกล้ที่สุดซึ่งจะเป็น 3 ในกรณีของ 15

เราจะใช้อัลกอริธึมการค้นหาแบบไบนารีเพื่อสนทนากับรากที่สองของตัวเลขที่ระบุ

รหัสสำหรับสิ่งนี้จะเป็น −

ตัวอย่าง

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));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

2
27
3
233