let calculateRoots = function (a, b, c) {
let result = b * b - 4 * a * c;
if (result < 0) {
return 'Корней нет';
};
if (result == 0) {
let root = -b / (2 * a);
return 'Корень равен ' + root;
};
if (result > 0) {
let rootOne = (-b + Math.sqrt(result)) / (2 * a);
let rootTwo = (-b - Math.sqrt(result)) / (2 * a);
return 'Первый корень равен ' + rootOne + ', второй корень равен ' + rootTwo;
};
};
Скорее всео хотели познакомить с Math.sqrt() ,на примере практической задачи
function calculateRoots(a, b, c) {
let d = b ** 2 - 4 * a * c;
if (d === 0) {
return 'Корень равен ' + -b / (2 * a);
} else if (d > 0) {
return 'Первый корень равен ' + (-b + Math.sqrt(d)) / (2 * a) + ', второй корень равен ' + (-b - Math.sqrt(d)) / (2 * a);
};
return ‘Корней нет’;
};
Неа, эта функция уже нужна была однажды ранее.
Предположу, что задача нужна для приятного чувства легкой победы, после раздражающей предыдущей)
Окей, я считаю этот код неплохо оформленным среди последних отписавшихся. В отличие от решения @hellocoder :
1 - Дискриминанту можно записать в const, чтобы показать, что мы её не меняем никак после получения.
2 - Дискриминанта - это не результат.
3 - По заветам дедули Дейкстры, у функции должен быть один выход, поэтому return только в конце, а в процессе мы лишь меняем переменную.
Короче:
function calculateRoots(a, b, c) {
const D = b * b - 4 * a * c;
let result = '';
if (D < 0) {
result = 'Корней нет'
} else if (D === 0) {
let root = -b / (2 * a);
result = `Корень равен ${root}`;
} else {
let root1 = (-b + Math.sqrt(D)) / (2 * a);
let root2 = (-b - Math.sqrt(D)) / (2 * a);
result = `Первый корень равен ${root1}, второй корень равен ${root2}`;
}
return result;
}