Помогите в решении задачи на Python
%  -    4335
Условие:
Даны действительные коэффициенты a, b, c, при этом a != 0. Решите квадратное уравнение ax²+bx+c=0 и выведите все его корни.

Формат ввода

Вводятся три действительных числа.

Формат вывода

Если уравнение имеет два корня, выведите два корня в порядке возрастания, если один корень — выведите одно число, если нет корней — не выводите ничего.

Решение:
a = float(input())
b = float(input())
c = float(input())
D = b ** 2 - 4 * a * c
if D > 0:
x1 = (b * (-1) - D ** 0.5) / (2 * a)
x2 = (b * (-1) + D ** 0.5) / (2 * a)
if x1 % 1 == 0:
x1an = int(x1)
else:
x1an = '{0:.6f}'. format(x1)
if x2 % 1 == 0:
x2an = int(x2)
else:
x2an = '{0:.6f}'. format(x2)
if D == 0:
x3 = b * (-1) / 2 * a
if x3 % 1 == 0:
x3an = int(x3)
else:
x3an = '{0:.6f}'. format(x3)
print(x3an)
if D < 0:
print()
if D > 0 and x1 > x2:
print(x2an, x1an)
if D > 0 and x1 < x2:
print(x1an, x2an)

Результат решения: wrong answer((
Ответов 5
  • Assa
    9 сентября 2019
     

    re(+)

    Все у Вас хорошо работает, только сделайте нормальные отступы в блоках, для питон это важно.
    Вот пример: https://gallery.ykt.ru/gals/2019/09/09/program/2723683_0l.jpg

    0
    • %
      11 сентября 2019
       

      Assa, отступы съехали при копи паст) мне кажется ошибка в том, что в решении не соблюдено а!=0confused face

      0
  • Garry
    6 октября 2019
     

    Похоже на программирование на Pascal (ну, уж длинный программный код)

    0
  • Билеты_Купили
    Билеты_Купили
    билетов нет?
    7 октября 2019
     

    Что-то подобное на бейсике делал 10 лет назад...

    0
  • Владимир
    11 октября 2019
     

    #Работает не для всех ситуаций, например не работает при 1 2 1, выводит пустое значение.
    import math

    a = float(input())
    b = float(input())
    c = float(input())
    D = b ** 2 - 4 * a * c
    if D > 0:
    x1 = (b * (-1) - D ** 0.5) / (2 * a)
    x2 = (b * (-1) + D ** 0.5) / (2 * a)

    if x1 % 1 == 0:
    x1an = int(x1)
    else:
    x1an = '{0:.6f}'. format(x1)

    if x2 % 1 == 0:
    x2an = int(x2)
    else:
    x2an = '{0:.6f}'. format(x2)

    if D == 0:
    x3 = b * (-1) / 2 * a
    if x3 % 1 == 0:
    x3an = int(x3)
    else:
    x3an = '{0:.6f}'. format(x3)
    print(x3an)
    if D < 0:
    print()
    if D > 0 and x1 > x2:
    print(x2an, x1an)
    if D > 0 and x1 < x2:
    print(x1an, x2an)

    Относительно не плохо работает, но не все тесты проходит.
    a = float(input())
    b = float(input())
    c = float(input())
    a != 0
    D = b ** 2 - 4 * a * c
    x1 = (-b - D ** (1 / 2)) / (2 * a)
    x2 = (-b + D ** (1 / 2)) / (2 * a)
    if D > 0 and a != 0:
    print(x1, x2)
    elif D == 0:
    print(x1)

    0
Обратная связь