二次方程式 ax**2 + bx + c = 0(用python实现,区分实数根与复数根)

import math
import cmath

def sol(a,b,c):
    #判断b的平方是否大于4ac,大于等于的时候是实数根,小于的时候是复数根(cmath相比与math的区别是cmath是复数运算)
    if b**2 >= 4*a*c :
        sqrt = math.sqrt(b**2 - 4*a*c)
        x1 = (-b + sqrt) / (2 * a)
        x2 = (-b - sqrt) / (2 * a)
        print("第一个根是:", x1)
        print("第二个根是:", x2)
    else:
        sqrt = cmath.sqrt(b**2 - 4 * a * c)
        x1 = (-b + sqrt) / (2 * a)
        x2 = (-b - sqrt) / (2 * a)
        #复数格式化输出实数+复数小数点后三位
        print("第一个根是{0}+{1:0.3f}j".format(x1.real, x1.imag))
        print("第二个根是{0}+{1:0.3f}j".format(x2.real, x2.imag))

if __name__ == '__main__':

    a = float(input("请输入第一个参数"))
    b = float(input("请输入第二个参数"))
    c = float(input("请输入第三个参数"))
    sol(a,b,c)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值