四方形程序无法正确解决

时间:2016-04-13 13:07:40

标签: python

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不会添加其余的等式并且答案出错了

1 个答案:

答案 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