Skip to content

Commit 0327965

Browse files
committed
sqrt(x)
1 parent fbe8693 commit 0327965

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

69-sqrt.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/**
2+
* @param {number} x
3+
* @return {number}
4+
*/
5+
var mySqrt = function (x) {
6+
// let left = 1;
7+
// let right = Math.floor(x / 2) + 1;
8+
// console.log("l", left, "r", right);
9+
// while (left <= right) {
10+
// let m = Math.floor((left + right) / 2);
11+
// if (m * m > x) {
12+
// console.log("a");
13+
// right = m - 1;
14+
// } else if (m * m < x) {
15+
// console.log("b");
16+
// left = m + 1;
17+
// } else {
18+
// console.log("xx");
19+
// return m;
20+
// }
21+
// }
22+
// return right;
23+
24+
l = 0;
25+
// agregamos 1 para arreglar el caso x=1
26+
// en teoria no importa si le añadimos uno, ya que la potencia del numero que sigue no se acerca al numero que queremos encontrar.
27+
r = parseInt(x / 2) + 1;
28+
while (l <= r) {
29+
const m = Math.floor((l + r) / 2);
30+
if (m * m > x) {
31+
r = m - 1;
32+
} else if (m * m === x) {
33+
console.log("y");
34+
return m;
35+
} else {
36+
l = m + 1;
37+
}
38+
}
39+
console.log("x");
40+
return r;
41+
};
42+
43+
console.log("---------------------");
44+
console.log(mySqrt(1));

0 commit comments

Comments
 (0)