小言_互联网的博客

联通笔试 2019 求一元二次方程的解 python实现

479人阅读  评论(0)
题目:

输入: 3个用空格隔开的整数 eg: 8  -25  4
输出: 有两个实根:按顺序输出。有一个:只输出一个。没有根:输出: no answer 0.1692  2.9558
思路:分为d=(b*b)-(4*a*c)>0  d=(b*b)-(4*a*c)=0  d=(b*b)-(4*a*c)<0
import sys
import math
def sortsalary(lis):
    a=lis[0]
    b=lis[1]
    c=lis[2]
    d=(b*b)-(4*a*c)
    if a==0:
        w=(-c)/b
        print('%.4f'%w)
    elif d<0 or a==0:
        print('no answer')
    elif d==0:
        m=(-b-math.sqrt(d))/(2*a)
        print('%.4f'%m)
    else:
        h=(-b-math.sqrt(d))/(2*a)
        j=(-b+math.sqrt(d))/(2*a)
        print('%.4f'%h,'%.4f'%j)

if __name__ == '__main__':
    line2 = sys.stdin.readline().strip()
    lis = list(map(int, line2.split()))
    sortsalary(lis)


转载:https://blog.csdn.net/ganghaodream/article/details/101623038
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场