Roman1
29.Ноябрь.2018 08:46:32
1
мой вариант, испытание прошел, но пришлось изучить что такое вообще Дискриминант, в школе пропустил эту тему ))
var calculateRoots = function (a, b, c) {
var x1 = 0;
var x2 = 0;
var str;
var D = b * b - 4 * a * c;
if (D < 0) {
str = 'Корней нет';
}
if (D === 0) {
x1 = -b / (2 * a);
str = 'Корень равен ' + x1;
}
if (D > 0) {
x1 = (-b + Math.sqrt(D)) / (2 * a);
x2 = (-b - Math.sqrt(D)) / (2 * a);
str = 'Первый корень равен ' + x1 + ', второй корень равен ' + x2;
}
return str;
}
1 лайк
Maksov
08.Декабрь.2018 07:28:06
2
Получилось как и у Романа, только переменных меньше новых вводил.
Код
let calculateRoots = function(a, b , c) {
let discriminant = b * b - 4 * a * c;
let result;
if (discriminant < 0) {
result = ‘Корней нет’;
}
if (discriminant === 0) {
result = 'Корень равен ’ + ( -b / (2 * a));
}
if (discriminant > 0) {
result = 'Первый корень равен ’ + (-b + Math.sqrt(discriminant)) / (2 * a) + ', второй корень равен ’ + (-b - Math.sqrt(discriminant)) / (2 * a);
}
return result;
}
1 лайк
S.K
16.Декабрь.2018 14:33:11
3
const calculateRoots = (a, b, c) => {
var D = b * b - 4 * a * c;
if (D < 0) {
return 'Корней нет';
} else if (D == 0) {
return 'Корень равен ' + (-b / (2 * a));
} else if (D > 0) {
return 'Первый корень равен ' + ((-b + Math.sqrt(D)) / (2 * a)) + ', второй корень равен ' + ((-b - Math.sqrt(D)) / (2 * a))
}
}
1 лайк
Первый вариант решения:
var calculateRoots = function (a, b, c) {
var D = Math.sqrt(b * b - 4 * a * c);
if (D !== D) {
return "Корней нет";
} if (D == 0) {
return 'Корень равен ' + -b / (2 * a);
} else {
return 'Первый корень равен ' + (-b + D) / (2 * a) +
', второй корень равен ' + (-b - D) / (2 * a);
}
}
Второй вариант решения:
var calculateRoots = function (a, b, c) {
var D = Math.sqrt(b * b - 4 * a * c),
answer = (D !== D) ? "Корней нет" :
D == 0 ? 'Корень равен ' + -b / (2 * a) :
'Первый корень равен ' + (-b + D) / (2 * a) +
', второй корень равен ' + (-b - D) / (2 * a);
return answer;
}
1 лайк
Подскажите, почему эта задача относится к вызовам продвинутого уровня? Она же решается просто по описанию.
5 лайков
let q = b * b - 4 * a * c;
let txt =[‘Корней нет’,'Корень равен ', 'Первый корень равен ‘,’, второй корень равен '];
let solution = (x,y) => {
let [f1,f2,f3] = [-y/(2x), (-y+Math.sqrt(q))/(2 x), (-y-Math.sqrt(q))/(2*x)];
if(q<0) return txt[0]
else
return (q==0)?txt[1]+f1:txt[2]+f2+txt[3]+f3;
}
return solution(a,b)
};
У тебя с let решение прошло ? А то я пару раз пробовал, не обнаруживало переменную при проверке, пришлось перейти на var…
const calculateRoots = (a, b, c) => {
let vD = Math.sqrt(bb-4 ac)
let result = ‘Корней нет’;
let [r1, r2a, r2b] = [-b/(2 a), (-b+vD)/(2a), (-b-vD)/(2 a)];
if (vD==0) result = 'Корень равен ' + r1;
if (vD>0) result = 'Первый корень равен ' + r2a + ', второй корень равен ' + r2b;
return result;
}
var calculateRoots = function (a, b, c) {
var result =0;
var discr = (b * b) - (4 * a * c);
var firstCoren = 0;
var secondCoren = 0;
if (discr < 0) {
result = ‘Корней нет’;
} else if (discr === 0) {
firstCoren = (-b / (2 * a));
result = ('Корень равен ’ + firstCoren);
} else if (discr > 0) {
var firstCoren = ((-b + Math.sqrt(discr)) / (2 * a));
var secondCoren = ((-b - Math.sqrt(discr)) / (2 * a));
result = ('Первый корень равен ’ + firstCoren + ', второй корень равен ’ + secondCoren);
}
return result;
}
Каким образом вы все прячите свой код в комментариях ?) Не могу понять…
Просто выделяешь в ответе то, что нужно скрыть, нажимаешь в поле ответа на шестерёнку --> скрыть детали.
Сводка
var calculateRoots = function(a, b, c) {
discriminant = b * b - 4 * a * c;
if (discriminant < 0) {
return ‘Корней нет’}
if (discriminant === 0) {
var roots = -b / (2 * a);
return 'Корень равен ’ + roots;}
if (discriminant > 0) {
var root1 = (-b + Math.sqrt(discriminant)) / (2 * a);
var root2 = (-b - Math.sqrt(discriminant)) / (2 * a)
return 'Первый корень равен ’ + root1 + ', второй корень равен ’ + root2;
}}
Sonia
09.Июнь.2020 16:52:35
13
Нажимаете значек шестеренки (он последний в панели), и там будет меню “скрыть детали”.
Razor
07.Май.2021 11:33:14
14
let calculateRoots = function(a,b,c) {
let discr = b * b - 4 * a * c;
if(discr < 0) {
return 'Корней нет';
} else if (discr === 0) {
let koren = -b / (2 * a);
return 'Корень равен ' + koren;
} else if (discr > 0) {
koren = (-b + Math.sqrt(discr)) / (2 * a);
let koren2 = (-b - Math.sqrt(discr)) / (2 * a);
return 'Первый корень равен ' + koren + ', второй корень равен ' + koren2
}
}
calculateRoots()
Мое решение:
let calculateRoots = function (a,b,c) {
let discr = (b * b) - (4 * a * c);
let firstRoot;
let secondRoot;
if (discr < 0) { return "Корней нет"};
if (discr == 0) {
firstRoot = -b / (2 * a);
return "Корень равен " + firstRoot;
}
if (discr > 0) {
firstRoot = (-b + Math.sqrt(discr)) / (2 * a);
secondRoot = (-b - Math.sqrt(discr)) / (2 * a);
return 'Первый корень равен ' + firstRoot + ', второй корень равен ' + secondRoot;
}
}
Alexei
17.Май.2021 15:46:33
16
Моё решение:
let calculateRoots = function (a, b, c) {
let discriminant = (b * b) - (4 * a * c);
if (discriminant < 0) {
return 'Корней нет';
} else if (discriminant === 0) {
let root = -(b) / (2 * a);
return 'Корень равен ' + root;
} else {
let firstRoot = (-(b) + Math.sqrt(discriminant)) / (2 * a);
let secondRoot = (-b - Math.sqrt(discriminant)) / (2 * a);
return 'Первый корень равен ' + firstRoot + ', второй корень равен ' + secondRoot;
}
}
Моё решение:
let calculateRoots = (a,b,c) => {
return ((D = (b**2 - 4 * a * c)**(1/2)) !== D ) ?
'Корней нет' :
D == 0 ?
'Корень равен ' + -b / (2 * a) :
'Первый корень равен ' + (-b + D) / (2 * a) + ', второй корень равен ' + (-b - D) / (2 * a)
}
let calculateRoots = function (a, b, c) {
if ((b * b - 4 * a * c) < 0) {
return 'Корней нет'
} else if (((b * b - 4 * a * c) === 0)) {
return 'Корень равен ' + (-b / (2 * a))
} else if ((b * b - 4 * a * c) > 0) {
return 'Первый корень равен ' + ((-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a)) + ', второй корень равен ' + ((-b - Math.sqrt(b * b - 4 * a * c)) / (2 * a))
}
}
const calculateRoots = (a, b, c) => {
const d = b ** 2 - 4 * a * c;
if (d < 0) {
return 'Корней нет' ;
}
const divisor = (2 * a)
if (d === 0) {
return `Корень равен ${-b / divisor}`;
}
const x1 = (-b + d ** 0.5) / divisor;
const x2 = (-b - d ** 0.5) / divisor;
return `Первый корень равен ${x1}, второй корень равен ${x2}`;
}
hik
15.Ноябрь.2021 12:00:57
20
var calculateRoots = function(a,b,c) {
var d = bb- 4 ac;
if(d<0) {
return ‘Корней нет’;
}
else if(d === 0) {
return 'Корень равен ’ + -b / (2 a);
}
else {
return 'Первый корень равен ’ + (-b+Math.sqrt(d)) / (2a) + ', второй корень равен ’ + (-b+ -(Math.sqrt(d))) / (2 a)
}
}