আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা নেয় এবং Math.sqrt() ফাংশন ব্যবহার না করে তার বর্গমূল বের করবে।
উদাহরণ
কোড নিচে দেওয়া হলো:
const square = (n, i, j) => {
let mid = (i + j) / 2;
let mul = mid * mid;
if ((mul === n) || (Math.abs(mul - n) < 0.00001)){
return mid;
}else if (mul < n){
return square(n, mid, j);
}else{
return square(n, i, mid);
}
}
// n-এর বর্গমূল বের করার ফাংশন
const findSqrt = num => {
let i = 1;
const found = false;
while (!found){
// যদি n একটি পূর্ণ বর্গ সংখ্যা হয়
if (i * i === num){
return i;
}else if (i * i > num){
let res = square(num, i - 1, i);
return res;
};
i++;
}
}
console.log(findSqrt(33));
কোড বোঝা
আমরা i = 1 থেকে লুপ চালালাম। যদি i * i = n হয়, তবে i রিটার্ন করলাম কারণ n একটি পূর্ণ বর্গ সংখ্যা যার বর্গমূল i। অন্যথায়, আমরা সবচেয়ে ছোট i খুঁজে বের করলাম যাতে i * i, n-এর চেয়ে বড় হয়।
এখন আমরা জানি n-এর বর্গমূল i-1 এবং i-এর মধ্যবর্তী অন্তর্বর্ত্তে আছে।
তারপর আমরা বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে বর্গমূল বের করলাম।
আউটপুট
কনসোলে আউটপুট:
5.744562149047852