Giải và biện luận phương trình bậc hai với Python

18
Lập trình Python

Bài toán. Giải và biện luận phương trình bậc hai ax2 + bx + c = 0

Yêu cầu: Nhập vào 3 số nguyên a, b, c từ file PTBH.INP. Kết quả ghi vào file PTBH.OUT:

  • Nếu phương trình vô nghiệm ghi NONE
  • Nếu phương trình có nghiệm kép ghi nghiệm kép -b / 2a (làm tròn đến 1 chữ số thập phân)
  • Nếu phương trình có 2 nghiệm phân biệt ghi 2 nghiệm cách nhau một dấu cách (làm tròn đến 1 chữ số thập phân)

Code tham khảo: 

import math
fin = open("PTBH.INP","r")
fout = open("PTBH.OUT","w")
line = fin.readline()
lt = line.split()
a, b, c = int(lt[0]), int(lt[1]), int(lt[2])
d = b**2 - 4*a*c
d = math.sqrt(d)
if d == 0:
    fout.write(str(round(float(-b/(2*a)))))
elif d < 0:
    fout.write("NONE")
else: 
    fout.write(str(round(float((-b-d)/(2*a)),1)) \
        + " " + str(round(float((-b+d)/(2*a)),1)))
fin.close()
fout.close()