हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक संख्या लेता है और 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));
कोड को समझना
हमने i =1 से लूप किया है। यदि i * i =n, तो हम i लौटाते हैं क्योंकि n एक पूर्ण वर्ग है जिसका वर्गमूल I है, अन्यथा हम सबसे छोटा i पाते हैं जिसके लिए i * i n से थोड़ा बड़ा है।पी>
अब हम जानते हैं कि n का वर्गमूल अंतराल i – 1 और i में होता है।
और फिर हमने वर्गमूल खोजने के लिए बाइनरी सर्च एल्गोरिथम का उपयोग किया।
आउटपुट
कंसोल में आउटपुट होगा -
5.744562149047852