python怎么把输出中的减号去掉?

Ghost
  • 1
新手上路,请多包涵

(该问题已解决,第二个为正确代码)
image.png
不知道结果为啥是-0.00000(结果见图片)
问题描述:

利用公式x1 = (-b + sqrt(bb-4ac))/(2a), x2 = (-b - sqrt(bb-4ac))/(2a)求一元二次方程ax2+ bx + c =0的根,其中a不等于0。

输入
输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。
输出
输出一行,表示方程的解。
若b2 = 4 a c,则两个实根相等,则输出形式为:x1=x2=...。
若b2 > 4 a c,则两个实根不等,则输出形式为:x1=...;x2 = ...,其中x1>x2。
若b2 < 4 a c,则有两个虚根,则输出:x1=实部+虚部i; x2=实部-虚部i,即x1的虚部系数大于等于x2的虚部系数,实部为0时不可省略。实部 = -b / (2a), 虚部 = sqrt(4ac-bb) / (2*a)

所有实数部分要求精确到小数点后5位,数字、符号之间没有空格

import math
n=input().split()
a,b,c=float(n[0]),float(n[1]),float(n[2])
eps=0.000001
if abs(b*b-4*a*c)<eps :
    x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
    print('x1=x2=%.5f'%x1)
elif b*b>4*a*c:
    x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
    x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)
    print('x1=%.5f;x2=%.5f'%(x1,x2))
else:
    sb= -b / (2 * a)
    xb= math.sqrt(4 * a * c - b * b) / (2 * a)

    print('x1=%.5f+%.5fi;x2=%.5f-%.5fi'%(sb,xb,sb,xb))
import math
n=input().split()
a,b,c=float(n[0]),float(n[1]),float(n[2])
eps=0.000001
if abs(b*b-4*a*c)<eps :
    x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
    print('x1=x2=%.5f'%x1)
elif b*b>4*a*c:
    x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
    x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)
    print('x1=%.5f;x2=%.5f'%(x1,x2))
else:
    sb= -b / (2 * a)
    xb= math.sqrt(4 * a * c - b * b) / (2 * a)
    if abs(sb)<eps:
        sb=0

    print('x1=%.5f+%.5fi;x2=%.5f-%.5fi'%(sb,xb,sb,xb))
回复
阅读 435
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏