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