在不使用庫函式的情況下查詢數字的平方根 - JavaScript
我們需要編寫一個 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);
}
}
// 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 剛好大於 n 的最小 i。
現在我們知道 n 的平方根位於區間 i – 1 和 i 之間。然後我們使用二分查詢演算法來找到平方根。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP