educoder_python:4-1-逻辑控制(if)第2关:求解一元二次方程组

任务描述
本关任务:编写一个能求解一元二次方程的小程序。
一元二次方程ax
2
+bx+c=0
a、b、c三个系数由测试集读入,根据三个系数来求解x的值则应为:
1、a=0 时输出: x=−c/b
2、b
2
−4ac=0时输出: x1=x2=−b/2a
3、b
2
−4ac>0时输出: x1=(−b+sqrt(b
2
−4ac))/2a,x2=(−b−sqrt(b
2
−4ac))/2a
4、b
2
−4ac<0时输出: x1=(−b/2a+sqrt(4ac−b
2
)/2aj),x2=(−b/2a−sqrt(4ac−b
2
)/2aj)
其中,
x1的实部为−b/2a,虚部为sqrt(4ac−b
2
)/2a
x2的实部为−b/2a,虚部为−sqrt(4ac−b
2
)/2a
这里sqrt的使用方法见相关知识1,复数的生成方法见相关知识2
例如:
测试集数据读入a、b、c的值为
0; 2; 4
输出为
x= -2.0 #使用 print(“x=”,x) 语句输出
测试集数据读入a、b、c的值为
1; -1; -2
输出为
x1= 2.0 x2= -1.0 #使用 print(“x1=”,x1,“x2=”,x2) 语句输出

测试集数据读入a、b、c的值为
1; 2; 3
输出为
x1= (-1+1.4142135623730951j) x2= (-1-1.4142135623730951j)

相关知识
1、求平方根:sqrt的用法
sqrt是math库里的一个函数,求平方根,使用前需要引入math,
本题目在第一行已经为大家引入该模块,后面直接使用math.sqrt函数即可,不用再次import math
使用方法如下:

import math
a=3
b=4
x=math.sqrt(a2+b3) #调用math.sqrt求根下 a平方加b的三次方
print(‘x=’,x)
x的值就是根下a平方加b的三次方

2、复数生成:complex的用法

complex是python中生成一个复数的方法。使用方法如下:

a=2
b=3
c=complex(a,b) #调用complex生成了一个实部为a,虚部为b的复数c
print©
则会输出:
(2+3j)
####测试说明

import math        #引入math模块
a=float(input())        #读入测试变量a
b=float(input())        #读入测试变量b        
c=float(input())        #读入测试变量c

#**********begin*******以下编写代码实现
sqrt=math.sqrt
if a==0:
    x=float(-c/b)
    print("x=",x)
elif b*b-4*a*c==0:
    x=float(-b/2*a)
    print("x1=x2=",x)
elif b*b-4*a*c>0:
    x1=float(-b+sqrt(b*b-4*a*c))/(2*a)
    x2=float(-b-sqrt(b*b-4*a*c))/(2*a)
    print("x1= {} x2= {}".format(x1,x2))
else:
    cc=complex(0,1)#0+1*i=1*i
    x1=((-b)/(2*a)+sqrt(4*a*c-b*b)/(2*a)*cc)
    x2=((-b)/(2*a)-sqrt(4*a*c-b*b)/(2*a)*cc)
    print("x1= {} x2= {}".format(x1,x2))
#**********end***********

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值