Ссылка на оригинальную статью.
Условие
Составить программу для решения квадратного уравнения [latex]ax^2 + bx + c = 0[/latex] [latex](a\neq0)[/latex].
Входные данные
В одной строке задано три целых числа — коэффициенты квадратного уравнения соответственно [latex]a[/latex], [latex]b[/latex] и [latex]c[/latex]. Значения коэффициентов не превышают по модулю [latex]100[/latex].
Входные данные
В одной строке вывести в случае отсутствия корней сообщение «No roots» (без кавычек), в случае, если решение содержит один корень вывести сначала сообщение «One root:» (без кавычек), а далее через пробел сам корень, в случае наличия двух корней вывести сначала сообщение «Two roots:» (без кавычек), а далее через пробел сначала меньший, а потом больший корень. Гарантируется, что в случае наличия решений все корни целочисленные.
Тесты
Входные данные | Выходные данные |
1 -5 6 | Two roots: 2 3 |
1 10 25 | One root: -5 |
1 2 3 | No roots |
2 6 7 | No roots |
1 -2 1 | One root: 1 |
2 -9 4 | Two roots: 0 4 |
3 10 -8 | Two roots: -4 0 |
1 6 9 | One root: -3 |
3 -7 10 | No roots |
Код
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 33 |
package; import neko.Lib; import Std.int; class Main { static function main() { var a:Int = Std.parseInt(Sys.stdin().readLine()); var b:Int = Std.parseInt(Sys.stdin().readLine()); var c:Int = Std.parseInt(Sys.stdin().readLine()); var d:Float = (b * b) - (4 * a * c); if (d > 0) { var x1:Float = ( -b + Math.sqrt(d) / (2 * a)); var x2:Float = ( -b - Math.sqrt(d) / (2 * a)); trace("Two roots: " + ((x1 > x2)? x2: x1) + " " + ((x1 > x2)? x1: x2) ); } else { if (d == 0) { trace("One root:" + " " + -b/(2*a)); } else { trace("No roots"); } } } } |
Решение
Каждый в школе в классе 7 узнает как решать квадратное уравнение. Для того чтобы его решить надо сначала найти дискриминант: [latex]d=(b\cdot b)-(4\cdot a\cdot c)[/latex], а потом подставить его в следующие формулы для нахождения корней квадратного уравнения: [latex]x1=(-b+\sqrt d)/(2\cdot a)[/latex] и [latex]x2=(-b-\sqrt d)/(2\cdot a)[/latex]. Однако для квадратного уравнения существует 3 варианта ответов зависящие от дискриминанта. Все 3 варианта расписаны в if-блоках, где сначала проверяется дискриминант и от его значения уже определяется сколько корней у нас будет. После этого выводятся корни, гарантированно целочисленные, или надпись «No roots», если их нет.
- e-olymp 974. Флойд-1 - 13.06.2017
- e-olymp 1872. Снеговики - 13.06.2017
- A155 - 13.05.2017
Хорошо, но Вы забыли добавить метки (ключевые слова).