-
-
Notifications
You must be signed in to change notification settings - Fork 5.7k
/
Copy pathQuadraticFormula.js
32 lines (30 loc) · 989 Bytes
/
QuadraticFormula.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* @function quadraticFormula
* @description This script will find the the roots of a quadratic equation.
* @param {number} a
* @param {number} b
* @param {number} c
* @return {array}
* @see https://en.wikipedia.org/wiki/Quadratic_formula
* @example quadraticFormula(1, -3, -4) = [4, -1]
* @example quadraticFormula(1, 5, 6) = [-2, -3]
* @example quadraticFormula(1, -3, 8) = []
*/
const solveQuadraticEquation = (a, b, c) => {
if (typeof a !== 'number' || typeof b !== 'number' || typeof c !== 'number') {
return new TypeError('Some argument is not a number.')
}
const discriminant = (b ** 2) - (4 * a * c)
const denominator = 2 * a
let answer = []
if (discriminant > 0) {
const x1 = (-b + Math.sqrt(discriminant)) / denominator
const x2 = (-b - Math.sqrt(discriminant)) / denominator
answer = [x1, x2]
} else if (discriminant === 0) {
const x = (-b) / denominator
answer = [x]
}
return answer
}
export { solveQuadraticEquation }