আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি নন-নেগেটিভ ইন্টিজার গ্রহণ করে এবং এর বর্গমূল কম্পিউট করে রিটার্ন করে। ফ্লোটিং-পয়েন্ট নাম্বারকে ইন্টিজারে ফ্লোর অফ করা যাবে।
উদাহরণস্বরূপ: ১৫ এর জন্য, আমাদের প্রিসাইজ ভ্যালু রিটার্ন করতে হবে না, আমরা কেবল নিকটতম ছোট ইন্টিজার ভ্যালু রিটার্ন করতে পারি, ১৫ এর ক্ষেত্রে সেটি ৩ হবে।
আমরা বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে দেওয়া সংখ্যার বর্গমূল খুঁজে বের করব।
উদাহরণ
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