不使用JavaScript中的Math.sqrt()的平方根函数
我们需要编写一个不带Math.sqrt()函数的,接受数字并计算其平方根的JavaScript函数。
因此,让我们为该函数编写代码-
示例
为此的代码将是-
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大于n的最小i。
现在我们知道n的平方根位于区间i–1和i。
然后,我们使用二进制搜索算法来找到平方根。
输出结果
控制台中的输出将为-
5.744562149047852