আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সংখ্যা নেয় এবং 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));
আউটপুট
এটি কনসোলে নিচের আউটপুট তৈরি করবে:
5.744562149047852
কোড বোঝা
আমরা i = 1 থেকে লুপ করলাম।
যদি i * i = n হয়, তবে i রিটার্ন করলাম কারণ n একটি পেরফেক্ট স্কয়ার যার বর্গমূল i। অন্যথায়, আমরা সবচেয়ে ছোট i খুঁজে বের করলাম যেন i * i ঠিক n-র চেয়ে বড়।
এখন আমরা জানি n-এর বর্গমূল i-1 এবং i-এর ഇন্টারভ্যালে আছে। এবং তারপর আমরা বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে বর্গমূল বের করলাম।