हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या लेता है और 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);
}
}
// Function to find the square root of n
const findSqrt = num => {
let i = 1;
const found = false;
while (!found){
// If n is a perfect square
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 में स्थित है। और फिर हमने वर्गमूल खोजने के लिए बाइनरी सर्च एल्गोरिथम का उपयोग किया।