Можно ли вывести вначале меньший, а затем больший из найденных корней без условного оператора?

220
01 февраля 2018, 20:07

Задача состоит из решения квадратного уравнения, при D > 0, A > 0.

Но необходимо:

Вывести вначале меньший, а затем больший из найденных корней. Корни квадратного уравнения находятся по формуле...

Это возможно вообще сделать не используя условия?? Язык JS.

Answer 1

Вот два корня:

x = (-b ± sqrt(d)) / (2*a)

Очевидно, что при a > 0 корень с - меньше, чем корень с +.

x_min = (-b - sqrt(d)) / (2*a)
x_max = (-b + sqrt(d)) / (2*a)
Answer 2

Можно использовать Math.max/Math.min:

Math.max(x, y)
Math.min(x, y)

Сниппет:

// уравнение ax^2 + bx + c = 0 
// например, x^2 - 3x + 2 = 0 
let a = +1; 
let b = -3; 
let c = +2; 
 
let d = Math.sqrt(b * b - 4 * a * c); 
let root1 = (-b + d) / (2 * a); 
let root2 = (-b - d) / (2 * a); 
 
let rootMin = Math.min(root1, root2); 
let rootMax = Math.max(root1, root2); 
console.log(rootMin, rootMax);

Спасибо, в следующий раз буду тщательней искать, прежде чем задавать вопрос.

READ ALSO
Удалить элемент из цикла

Удалить элемент из цикла

Добрый день! Ситуация такая: вытаскиваю картинки из папки вот таким образом

182
Кеширование файлов с помощью JavaScript

Кеширование файлов с помощью JavaScript

Имеется определённый массив путей наcss,

173
Поиск js элемента по HTML коду

Поиск js элемента по HTML коду

Возникла необходимость находить элементы по коду самих элементов, пример -

136
Декартово произведение нескольких массивов

Декартово произведение нескольких массивов

Как можно реализовать декартово произведение нескольких массивов в JavaScript?

243