print(f"The two roots are: {x1:.2f} and {x2:.2f}")
elif d == 0:
# calculate one root
x = -b / (2 * a)
print(f"The one root is: {x:.2f}")
else:
# no real roots
print("No roots exist.")
Пояснення:
Цей код додатково перевіряє, чи є корені в рівнянні, перед тим, як продовжувати. Якщо дискримінант d більше нуля, то рівняння має два корені, і ми знаходимо їх використовуючи формули (-b - cmath.sqrt(d)) / (2 * a) та (-b + cmath.sqrt(d)) / (2 * a) і виводимо їх у форматі float. Якщо дискримінант дорівнює нулю, то рівняння має один корінь, і ми знаходимо його використовуючи формулу -b / (2 * a) і виводимо у форматі float. Якщо дискримінант менше нуля, то рівняння не має дійсних коренів, і ми виводимо повідомлення про те, що коренів немає.
0 votes Thanks 0
ILFV183
зачем вы используюте sqrt, если можно просто возвести число в степень 0,5, ответ будет такой же но программа работать будет быстрее
from math import sqrt a = int(input('a = ')) # Ввод a b = int(input('b = ')) # Ввод b
c = int(input('c = ')) # Ввод c d = b**2 - 4*a*c # дискриминант if d > 0: # если дискриминант больше нуля, два корня x1 = (-b + sqrt(d)) / (2 * a) x2 = (-b - sqrt(d)) / (2 * a) print('x1 =', x1, 'x2 =', x2) elif d == 0: # если равен нулю, один корент x1 = -b / (2 * a) print('x1 =', x1) else: # если меньше нуля, корней нету print('Уравнение не имеет корней')
Можно заменить строки с вводом на свои числа, тогда пользователь сразу получит результат без своего ввода.
Answers & Comments
Відповідь:from math import sqrt
# coefficients of quadratic equation
a = 1.0
b = 2.0
c = -3.0
# calculate discriminant
d = b ** 2 - 4 * a * c
# check if roots exist
if d > 0:
# calculate two roots
x1 = (-b + sqrt(d)) / (2 * a)
x2 = (-b - sqrt(d)) / (2 * a)
print(f"The two roots are: {x1:.2f} and {x2:.2f}")
elif d == 0:
# calculate one root
x = -b / (2 * a)
print(f"The one root is: {x:.2f}")
else:
# no real roots
print("No roots exist.")
Пояснення:
Цей код додатково перевіряє, чи є корені в рівнянні, перед тим, як продовжувати. Якщо дискримінант d більше нуля, то рівняння має два корені, і ми знаходимо їх використовуючи формули (-b - cmath.sqrt(d)) / (2 * a) та (-b + cmath.sqrt(d)) / (2 * a) і виводимо їх у форматі float. Якщо дискримінант дорівнює нулю, то рівняння має один корінь, і ми знаходимо його використовуючи формулу -b / (2 * a) і виводимо у форматі float. Якщо дискримінант менше нуля, то рівняння не має дійсних коренів, і ми виводимо повідомлення про те, що коренів немає.
Ответ:
from math import sqrt
a = int(input('a = ')) # Ввод a
b = int(input('b = ')) # Ввод b
c = int(input('c = ')) # Ввод c
d = b**2 - 4*a*c # дискриминант
if d > 0: # если дискриминант больше нуля, два корня
x1 = (-b + sqrt(d)) / (2 * a)
x2 = (-b - sqrt(d)) / (2 * a)
print('x1 =', x1, 'x2 =', x2)
elif d == 0: # если равен нулю, один корент
x1 = -b / (2 * a)
print('x1 =', x1)
else: # если меньше нуля, корней нету
print('Уравнение не имеет корней')
Можно заменить строки с вводом на свои числа, тогда пользователь сразу получит результат без своего ввода.