Вопрос Помогите с задачей по информатике, не могу решить уже 6 часов! програмирование на языке python

Регистрация
2 Апр 2013
Сообщения
76
Репутация
0
Спасибо
0
Монет
0
Даны коэффициенты a, b, c квадратного уравнения ax2 + bx + c = 0. Необходимо вывести на экран True, если уравнение имеет хотя бы один корень, и False — в противном случае. Программа должна представлять линейный алгоритм, то есть не допускается использование условного оператора.
 
Да ты гонишь. Если знаешь, что такое дискриминант, с чем его едят, задача вообще времени не занимает. А ты не знаешь. Ты отстал. Рано с такой базой код писать.
Наверно, с музыкой у тебя лучше получается.
 
Существует 3 варианта наличия корней:
a != 0 and D >= 0
a == 0 and b != 0
a == 0 and b == 0 and c == 0
получаем: print(a != 0 and b * b - 4 * a * c >= 0 or a == 0 and (b != 0 or c == 0)) или print([b != 0 or c == 0, b * b - 4 * a * c >= 0][a != 0])
 
В такой формулировке надо всегда выводить true, поскольку из одной не самой простой теоремы следует, что полином n-ной степени всегда имеет n корней для любого n>0. Они могут совпадать или быть комплексными, но их всегда будет n.
Отдельно следует рассмотреть только вариант, когда наш полином имеет 0-ую степень, т. е. а и б равны 0. Это сделал чуть выше добрый дядя Андрей.
 
a, b, c = [float(input()) for _ in range(3)]
print(b * b - 4 * a * c >= 0)
 
Назад
Сверху