建立一个求一元二次方程解的类(a*x^2+b*x+c=0),输入系数a,b,c 的值后打印出 这个方程的解。输入第一行为样例数m,接下来m行每行3个整数a、b、c。
时间: 2023-06-14 08:07:28 浏览: 93
求解一元二次方程的程序
好的,我来为你实现这个类。
```python
import math
class QuadraticEquationSolver:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def solve(self):
delta = self.b**2 - 4*self.a*self.c
if delta < 0:
return None
elif delta == 0:
x = -self.b / (2*self.a)
return x
else:
x1 = (-self.b + math.sqrt(delta)) / (2*self.a)
x2 = (-self.b - math.sqrt(delta)) / (2*self.a)
return x1, x2
m = int(input())
for i in range(m):
a, b, c = map(int, input().split())
solver = QuadraticEquationSolver(a, b, c)
solution = solver.solve()
if solution is None:
print("No solution")
elif isinstance(solution, tuple):
print("{:.2f} {:.2f}".format(solution[0], solution[1]))
else:
print("{:.2f}".format(solution))
```
上面的代码实现了一个名为`QuadraticEquationSolver`的类,它有3个属性`a`、`b`、`c`,分别代表一元二次方程的系数。`solve`方法会返回该方程的解,如果无解则返回`None`,如果有1个解则返回一个浮点数,如果有2个解则返回一个元组。
在主程序中,先读入样例数`m`,然后依次读入`m`个样例并解决它们。如果有解则按照题目要求输出结果,否则输出"No solution"。
阅读全文