Files
JavaScript/Maths/QuadraticRoots.js
Dibya12345 f271a2cae0 Added QuadraticRoots to Math/QuadraticRoots.js (#1376)
* Added QuadraticRoots in the Math/QuadraticRoots

* Fixed math/QyadraticRoots var to let

* Added relevant links math/QyadraticRoots

* Added relevant links math/QyadraticRoots and fixed let - const

* Added the changes and @see notation in Math/QuadraticRoots.js

* Added the changes Math/QuadraticRoots.js and return an empty []

* Readd describe block, remove redundant comments

* Changed [1,1] to [1]

---------

Co-authored-by: Dibya <Dibya.DebayanDash@siriuscom.com>
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
2023-10-02 12:42:39 +05:30

38 lines
1.1 KiB
JavaScript

/**
* @see https://www.cuemath.com/algebra/roots-of-quadratic-equation/
* @author Dibya Debayan Dash
* Calculates the roots of a quadratic equation of the form ax^2 + bx + c = 0.
*
* @param {number} a - Coefficient of x^2.
* @param {number} b - Coefficient of x.
* @param {number} c - Constant term.
* @returns {number[]} - An array containing the roots if they are real,
* or an empty array indicating no real roots.
*
* @example
* // Find the roots of the quadratic equation: 2x^2 - 4x + 2 = 0
* const roots = quadraticRoots(2, -4, 2);
* // Expected output: [1]
*/
const quadraticRoots = (a, b, c) => {
// Calculate the discriminant
const discriminant = b * b - 4 * a * c
// Check if roots are real
if (discriminant < 0) {
return []
} else if (discriminant === 0) {
// One real root
return [-b / (2 * a)]
} else {
// Two real roots
const sqrtDiscriminant = Math.sqrt(discriminant)
return [
(-b + sqrtDiscriminant) / (2 * a),
(-b - sqrtDiscriminant) / (2 * a)
]
}
}
export { quadraticRoots }