输入a,b,c的值,作为a*x*x+b*x+c=0的三个参数,判断这个一元二次方程是否有实根,如果有,则输出这个方程的实根。求python代码
时间: 2023-05-27 07:01:00 浏览: 70
```python
import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
if a == 0:
print("这不是一个一元二次方程!")
else:
delta = b**2 - 4*a*c
if delta < 0:
print("该方程无实根!")
elif delta == 0:
x = -b / (2*a)
print("该方程有一个实根:{}".format(x))
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
print("该方程有两个实根:{},{}".format(x1, x2))
```
注:这段代码使用了 Python 中的数学函数 `math.sqrt`,该函数可以计算平方根。同时,使用了 `if-else` 分支语句和 `format` 字符串格式化方法。
相关问题
输入a、b、c三个参数,求解ax*+bx+c=0的两个根,假的b*b-4ac>0的pychm解法x
我可以回答这个问题。根据一元二次方程的求根公式,x=(-b±√(b²-4ac))/2a,可以得到两个根。具体的解法如下:
float a, b, c;
float delta, x1, x2;
// 输入a、b、c三个参数
scanf("%f %f %f", &a, &b, &c);
// 判断b²-4ac是否大于
delta = b * b - 4 * a * c;
if (delta < ) {
printf("方程无实数根\n");
} else {
// 计算两个根
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的两个根为:%.2f 和 %.2f\n", x1, x2);
}
建立一个求一元二次方程解的类(a*x^2+b*x+c=0),输入系数a,b,c 的值后打印出 这个方程的解。输入第一行为样例数m,接下来m行每行3个整数a、b、c。
### 回答1:
下面是求一元二次方程解的类的实现代码:
```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 "No real solution"
elif delta == 0:
x = -self.b / (2 * self.a)
return "x={}".format(x)
else:
x1 = (-self.b + math.sqrt(delta)) / (2 * self.a)
x2 = (-self.b - math.sqrt(delta)) / (2 * self.a)
return "x1={}, x2={}".format(x1, x2)
m = int(input())
for i in range(m):
a, b, c = map(int, input().split())
equation = QuadraticEquationSolver(a, b, c)
print(equation.solve())
```
解释一下代码:
- 首先定义了一个 `QuadraticEquationSolver` 类,它有三个属性 `a`、`b` 和 `c` 表示一元二次方程的系数。
- 类中有一个 `solve` 方法,用来求解一元二次方程的根。如果方程有两个实根,返回字符串 `"x1=根1, x2=根2"`;如果方程只有一个实根,返回字符串 `"x=根"`;如果方程没有实根,返回字符串 `"No real solution"`。
- 在程序最后,首先读入样例数 `m`,然后对于每个样例,读入系数 `a`、`b` 和 `c`,调用 `QuadraticEquationSolver` 类求解方程并打印出解。
输入输出样例:
```
输入:
2
1 3 2
1 2 1
输出:
x1=-1.0, x2=-2.0
x=-1.0
```
### 回答2:
可以创建一个名为QuadraticEquation的类来处理一元二次方程的解。
在这个类中,我们可以定义一个名为solve的方法来计算方程的解。这个方法接受三个整数参数a、b和c,并通过求根公式来计算方程的解。
求根公式为 x = (-b ± √(b^2 - 4ac)) / (2a)。
在solve方法中,我们首先计算(b^2 - 4ac)的值,然后判断该值的正负情况来确定方程是否有实数解。如果(b^2 - 4ac)小于0,则方程没有实数解。否则,我们可以计算出两个解,并将它们打印出来。
接下来,在主函数中,我们首先读取样例数m,然后依次读取m行的输入。对于每一组输入,我们实例化一个QuadraticEquation对象,并调用它的solve方法来计算并打印方程的解。
下面是具体实现的代码:
```python
import math
class QuadraticEquation:
def solve(self, a, b, c):
discriminant = b ** 2 - 4 * a * c
if discriminant < 0:
print("此方程没有实数解")
else:
root1 = (-b + math.sqrt(discriminant)) / (2 * a)
root2 = (-b - math.sqrt(discriminant)) / (2 * a)
print("方程的解为:", root1, root2)
m = int(input("请输入样例数m:"))
for _ in range(m):
a, b, c = map(int, input("请输入a、b、c的值:").split())
equation = QuadraticEquation()
equation.solve(a, b, c)
```
通过这个实现,我们可以输入要解的方程的系数a、b和c的值,并打印出方程的解。
### 回答3:
首先,我们需要定义一个“一元二次方程”的类,我们可以将其命名为“QuadraticEquation”。
首先,在构造函数中,我们需要接收并存储方程的系数a、b、c的值,可以使用三个实例变量来分别存储这些值。同时,我们可以在构造函数中调用一个名为“solve”的方法,以计算方程的解。
在“solve”方法中,我们可以通过判断系数a是否等于0来确定方程是否为一元二次方程。如果a等于0,则表示方程退化为一元一次方程,我们可以通过判断b是否等于0来确定方程是否没有解,如果b等于0,则表示方程无解,否则,方程的解为-c/b。
如果a不等于0,则表示方程为一元二次方程。我们可以根据判别式D=b^2-4ac的值来确定方程的解的情况。如果D大于0,则方程有两个实数根,可以通过公式进行计算。如果D等于0,则方程有一个实数根,也可以通过公式进行计算。如果D小于0,则方程没有实数根,只有复数根。
最后,在主程序中,我们可以通过读取输入的m值,来确定需要解的一元二次方程的数量。然后,通过循环m次,每次读取a、b、c三个整数值,并创建一个QuadraticEquation对象,然后调用其solve方法来计算并打印方程的解。
以下是一个示例实现代码:
```python
import math
class QuadraticEquation:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
self.solve()
def solve(self):
if self.a == 0:
if self.b == 0:
if self.c == 0:
print("方程为恒等式")
else:
print("方程无解")
else:
print("方程的解为:", -self.c/self.b)
else:
D = self.b ** 2 - 4 * self.a * self.c
if D > 0:
x1 = (-self.b + math.sqrt(D)) / (2 * self.a)
x2 = (-self.b - math.sqrt(D)) / (2 * self.a)
print("方程的两个实数解为: ", x1, x2)
elif D == 0:
x = -self.b / (2 * self.a)
print("方程的一个实数解为: ", x)
else:
real = -self.b / (2 * self.a)
img = math.sqrt(-D) / (2 * self.a)
print("方程的复数解为: ", complex(real, img), complex(real, -img))
m = int(input("请输入样例数m: "))
for _ in range(m):
a, b, c = map(int, input("请输入a、b、c的值: ").split())
equation = QuadraticEquation(a, b, c)
```
以上为一个简单的实现,当输入一个样例数m后,接下来m行分别输入a、b、c的值,然后输出对应的方程的解。
希望能对您有所帮助!如有疑问,请您随时追问。
阅读全文