二次方程式程序输出不正确的答案

时间:2015-03-10 01:49:27

标签: python-3.x

我真的很累,所以我可能只是忘了什么,但现在就是这样。我已经很长时间了,因为我甚至触及过二次方格。答案完全没有,例如: 2x ** 2 - 4x - 3 = 0应该导致x = -0.58,x = 2.58。相反,我得到x = 10,x = -2。我确定我在这里做了一些超级基本的错误。

    import math
    import sys
    a = float(input('a ='))
    b = float(input('b ='))
    c = float(input('c ='))
    cont = float(input('Continue? (1/0)'))
    a1 = int((-b + math.sqrt(b**(2)-4*a*c))/2*a)
    a2 = int((-b - math.sqrt(b**(2)-4*a*c))/2*a)
    if cont == 1:
        print(a)
        print(b)
        print(c)
        print(cont)
        print('x1 =',a1)
        print('x2 =', a2)

    elif cont == 0:
                 sys.exit

1 个答案:

答案 0 :(得分:0)

在(2 * a)左右的等式中添加括号:

a1 = (-b + math.sqrt(b**(2)-4*a*c))/(2*a)
a2 = (-b - math.sqrt(b**(2)-4*a*c))/(2*a)

另外,你的意思是转换为整数吗?