हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या लेता है और 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 में स्थित है। और फिर हमने वर्गमूल खोजने के लिए बाइनरी सर्च एल्गोरिथम का उपयोग किया।