Напишите функцию roots_of_quadratic_equation(a,b,c), которая принимает параметры a,b,c и возвращает решения уравнения ax2 + bx + c = 0.
Возвращаемое значение у функции ровно одно, а корней может быть от нуля до двух (есть еще один случай: a = b = c = 0, при котором решением является любое число; про него ниже), поэтому сделать так, чтобы эта функция возвращала просто значение корня, не получится.
Вместо этого вы должны вернуть из функции список, содержащий значения всех корней уравнения (одно, два или ни одного). Если корнем является любое значение x, верните вместо списка чисел – список, содержащий одну строку “all” (["all"])
Не забудьте рассмотреть случаи, когда квадратное уравнение вырождается до линейного (a = 0).
Также бывает, что линейное уравнение вырождается еще дальше – до уравнения, в котором x не участвует вовсе (a = b = 0). В этом случае мы получаем уравнение c = 0, которое, в зависимости от значения c, либо не имеет корней, либо корнем является любой x.
Пример 1
Пример 2
ВОТ МОЙ КОД:
def roots_of_quadratic_equation(*num):
d = (num[1] ** 2) - (4 * (num[0] * num[2]))
if d > 0:
return int((-num[1] + pow(d, .5)) / (2 * num[0])), int((-num[1] - pow(d, .5)) / (2 * num[0]))
elif d == 0:
return int(-(num[1] / (2 * num[0]))),
return []
вроде бы работал но на одном из тестов программа упала
конкретно вот этот тест:
result = roots_of_quadratic_equation(0, 2, 1)
if 'all' in result:
if result == ['all']:
print('0 0 0')
else:
print('fail')
else:
print(*sorted(result))
хочу объяснения где ошибка и как её исправить
Возвращаемое значение у функции ровно одно, а корней может быть от нуля до двух (есть еще один случай: a = b = c = 0, при котором решением является любое число; про него ниже), поэтому сделать так, чтобы эта функция возвращала просто значение корня, не получится.
Вместо этого вы должны вернуть из функции список, содержащий значения всех корней уравнения (одно, два или ни одного). Если корнем является любое значение x, верните вместо списка чисел – список, содержащий одну строку “all” (["all"])
Не забудьте рассмотреть случаи, когда квадратное уравнение вырождается до линейного (a = 0).
Также бывает, что линейное уравнение вырождается еще дальше – до уравнения, в котором x не участвует вовсе (a = b = 0). В этом случае мы получаем уравнение c = 0, которое, в зависимости от значения c, либо не имеет корней, либо корнем является любой x.
Пример 1
Ввод | Вывод |
---|---|
result = roots_of_quadratic_equation(1, 2, 1) print(*sorted(result)) | -1 |
Ввод | Вывод |
---|---|
result = roots_of_quadratic_equation(1, -3, 2) print(*sorted(result)) | 1 2 |
ВОТ МОЙ КОД:
def roots_of_quadratic_equation(*num):
d = (num[1] ** 2) - (4 * (num[0] * num[2]))
if d > 0:
return int((-num[1] + pow(d, .5)) / (2 * num[0])), int((-num[1] - pow(d, .5)) / (2 * num[0]))
elif d == 0:
return int(-(num[1] / (2 * num[0]))),
return []
вроде бы работал но на одном из тестов программа упала
конкретно вот этот тест:
result = roots_of_quadratic_equation(0, 2, 1)
if 'all' in result:
if result == ['all']:
print('0 0 0')
else:
print('fail')
else:
print(*sorted(result))
хочу объяснения где ошибка и как её исправить