Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Cách tính căn bậc n (nth root) của số trong JavaScript?

Để tính căn bậc n của số x: x^(1/n). Sử dụng Math.pow(x, 1/n) hoặc toán tử ** (ES2016).

Công thức

nthRoot = Math.pow(x, 1 / n);
// Hoặc ES2016:
nthRoot = x ** (1 / n);

Ví dụ: Hàm tính căn bậc n xử lý dấu âm

<!DOCTYPE html>
<html>
<body>
    <script>
        function nthRoot(x, n) {
            if (n === 0) return NaN; // Tránh chia cho 0
            
            // Xử lý số âm: căn bậc chẵn của số âm không phải số thực
            if (x < 0 && n % 2 === 0) {
                return NaN; // Hoặc throw error
            }
            
            var sign = x < 0 ? -1 : 1;
            var absX = Math.abs(x);
            var result = sign * Math.pow(absX, 1 / n);
            return result;
        }

        // Test
        console.log(nthRoot(36, 2));   // 6 (căn bậc 2)
        console.log(nthRoot(27, 3));   // 3 (căn bậc 3)
        console.log(nthRoot(-27, 3));  // -3 (căn bậc 3 của số âm)
        console.log(nthRoot(-16, 2));  // NaN (căn bậc 2 của số âm)
        console.log(nthRoot(16, 4));   // 2 (căn bậc 4)
    </script>
</body>
</html>

Lưu ý:

  • Math.sqrt(x) là căn bậc 2 (tối ưu hơn Math.pow(x, 0.5)).
  • Math.cbrt(x) là căn bậc 3 (hỗ trợ số âm đúng).
  • Sai số floating-point: Math.pow(27, 1/3) có thể ra 2.9999999999999996. Dùng Math.round() hoặc toFixed() nếu cần chính xác.