import cmath
a = float(input("A: "))
b = float(input("B: "))
c = float(input("C: "))
negB = float(b*-1)
sqrtVAR = (b**2-4*a*c)
plus = (negB+cmath.sqrt(sqrtVAR)/2*a)
minus = (negB-cmath.sqrt(sqrtVAR)/2*a)
print(plus)
print(minus)
当我运行它时,negB不会添加其余的等式并且答案出错了
答案 0 :(得分:1)
正如pacholik所提到的,你已经忘记了一些括号,所以你的计算是不正确的。
此外,您不必要地计算两次相同的平方根。
下面的代码添加了一个函数quad
,用于测试找到的根实际上是零的等级。
import cmath
a = float(input("A: "))
b = float(input("B: "))
c = float(input("C: "))
def quad(x):
return a*x*x + b*x +c
d = cmath.sqrt(b*b - 4*a*c)
x1 = (-b + d) / (2*a)
x2 = (-b - d) / (2*a)
print(x1, quad(x1))
print(x2, quad(x1))
<强>测试强>
A: 1
B: 2
C: 3
(-1+1.41421356237j) 0j
(-1-1.41421356237j) 0j