编程语言
首页 > 编程语言> > 【Python算法作业】解一元二次方程

【Python算法作业】解一元二次方程

作者:互联网

【Python算法作业】解一元二次方程

# 求方程ax^2+bx+c=0的根
# 用到 math.sqrt()
import math

# solveEquation
def solveEquation(a, b, c):
  print("您输入的方程是:")
  print("{} * x^2 + {} * x + {} = 0 ".format(a, b, c))
  # 判别式 delta
  delta = b * b - 4 * a * c
  x1 = -1  # 初始化 x1
  x2 = -1  # 初始化 x2
  flag = False  # 用于判断是否有实根
  # 有两个不同实根的情况 delta > 0
  if (delta > 0):
    # {x1->(-b-Sqrt[b^2-4 a c])/(2 a)},{x2->(-b+Sqrt[b^2-4 a c])/(2 a)
    flag = True
    x1 = (-b - math.sqrt(delta)) / (2 * a)
    x2 = (-b + math.sqrt(delta)) / (2 * a)
  if (delta == 0):
    flag = True
    x1 = -b / (2 * a)
    x2 = x1
  if (delta < 0):
    flag = False
    print("△={}^2 - 4*{}*{} 小于0,所以【无实数解】!".format(a, b, c))
  return flag, x1, x2

if __name__ == '__main__':
  a, b, c = map(float, input("求解一元二次方程【 ax^2+bx+c = 0 】 请输入3个参数 a, b, c 用空格隔开:").split())
  print("您输入的参数: a = {}, b = {}, c = {}".format(a, b, c))
  flag, x1, x2 = solveEquation(a, b, c)
  if (flag == True):
    print("方程有两个实根: x1 = {}, x2 ={}".format(x1, x2))
  else:
    print("方程无实根")
  print("主程序运行结束。")

 

输出结果:

求解一元二次方程【 ax^2+bx+c = 0 】 请输入3个参数 a, b, c 用空格隔开:1 2 1
您输入的参数: a = 1.0, b = 2.0, c = 1.0
您输入的方程是:
1.0 * x^2 + 2.0 * x + 1.0 = 0 
方程有两个实根: x1 = -1.0, x2 =-1.0
主程序运行结束。

 

 

标签:1.0,Python,flag,print,算法,一元二次方程,delta,x2,x1
来源: https://blog.csdn.net/hardwork617s/article/details/113738566