Софтуерно Инженерство
Loading...
+ Нов въпрос
Thedi avatar Thedi 198 Точки

Здравей,
Не съм стигнал до задачата още, но мисля, че проблема ти е когато d === 0  в задача пише, че тогава трябва роот-а да е само един, а пък от кода ти ми се струва, че ти винаги търсиш дра роот-а а защото правиш проверка само дали D < 0.

Става въпрос за вторият пример от задачата:
 

The equation is: x2 - 12x + 36 = 0  a = 1; b = -12; c = 36
The discriminant is: d = b2 - 4*a*c = -12*-12 - 4*1*36 = 144 - 144 = 0
We have zero discriminant (d = 0), so the equation has only one real root:
⦁    x = -b / (2*a) = 12 / 2 = 6
The output is only one line, holding the number 6.

 

Би трябвало това да го има като нулев тест и той също да не ти минава.Надявам се това да ти помогне.

0
19/01/2018 22:29:26
ambiorix avatar ambiorix 641 Точки

Две са грешките:

1. от ред 4 до ред 7 -> if (b === 0 && c === 0) -> това условие и тялото му не знам откъде са взети, но не са коректни.

2. ред 16 до ред 18, console.log(root); -> когато са два корена не трябва да са един под друг, а разделени със спейс.

Ето го коригирано: https://pastebin.com/tfsJ3E7U

Повече информация за квадратни уравнения и трите възможни варианта на корени: https://www.matematika.bg/algebra/quadratic-equation.html

0
AleksanderKostadinov avatar AleksanderKostadinov 12 Точки

Благодаря. Явно не съм разбрал как се принтира. А реда с проверката дали b === 0 && c === 0 беше там, защото си мислех, че грешката е в принтиране на "- 0" при вход 20x**2 = 0 . Виждам, че и филтера ми е излишен след като изпозвам push() . :)

0
AsenVolev avatar AsenVolev 8 Точки

Ето едно много по кратко решение на проблема:
https://pastebin.com/B2WsZzxU

0