一元二次方程的一般式为ax^2+bx+c=0(a不等于0)
一元二次方程的解法有几种,最简便的是公式法,即=b±根号b^2-4ac除以2a
a=int(input("请输入二次项的系数,如有根号,请输入无根号的部分"))
b=int(input("请输入一次项的系数,如有根号,请输入无根号的部分"))
c=int(input("请输入常数项的值,如有根号,请输入无根号的部分"))
g=int(input("二次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
h=int(input("一次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
i=int(input("常数项是否有根号?如有,请输入去根号的数字,如无,请键入“1”")
先询问出abc的值, 以及带不带根号
j=(g**(1/2))*a
k=(h**(1/2))*b
l=(i**(1/2))*c
这一步就是分别计算出a,b,c的值(根号默认为二次)
d=(k**2)-4*j*l
这一步就相当于上面的b^2=4ac,只不过乘上了一个根号
if d<0 or g==0 :
print("此方程没有实数解")
这一步就是最基础的筛选,因为b^2-4ac小于0的话方程是没有实数解的,所以要先排除。
另外g也不能等于0,因为如果等于0的话就是一元一次方程了,不符合题意。
else:
print("此方程有实数解")
e=b+(d**(1/2))
f=b-(d**(1/2))
A=e/(2*a)
B=f/(2*a)
排去了无解的式子,就要开始分析有解的式子了,e和f就是b±根号b^2-4ac除以2a上面的分子,
当然,分子分两种请况,一种是加,另一种是减,加对应e,减对应f
A和B也很好理解,就是分母(除以2a)
if A !=B :
print("该方程的实数解为X1=",-A,"X2=",-B)
if A==B :
print("实数解为X1=X2=",-A or -B)
最后再分析一下A和B的情况,如果A不等于B,就打印出两个数的值,等于的话就随机打印一个数的值(当然,也可以之打印一个)
最后的程序:
a=int(input("请输入二次项的系数,如有根号,请输入无根号的部分"))
b=int(input("请输入一次项的系数,如有根号,请输入无根号的部分"))
c=int(input("请输入常数项的值,如有根号,请输入无根号的部分"))
g=int(input("二次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
h=int(input("一次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
i=int(input("常数项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
j=(g**(1/2))*a
k=(h**(1/2))*b
l=(i**(1/2))*c
d=(k**2)-4*j*l
if d<0 or g==0 :
print("此方程没有实数解")
else:
print("此方程有实数解")
e=b+(d**(1/2))
f=b-(d**(1/2))
A=e/(2*a)
B=f/(2*a)
if A !=B :
print("该方程的实数解为X1=",-A,"X2=",-B)
if A==B :
print("实数解为X1=X2=",-A or -B)
当然,各位学霸也可以不抄答案,而是自己验算一遍:
a=int(input("请输入二次项的系数,如有根号,请输入无根号的部分"))
b=int(input("请输入一次项的系数,如有根号,请输入无根号的部分"))
c=int(input("请输入常数项的值,如有根号,请输入无根号的部分"))
g=int(input("二次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
h=int(input("一次项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
i=int(input("常数项是否有根号?如有,请输入去根号的数字,如无,请键入“1”"))
j=(g**(1/2))*a
k=(h**(1/2))*b
l=(i**(1/2))*c
d=(k**2)-4*j*l
if d<0 or g==0 or h==0 or i==0:
print("此方程没有实数解")
else:
print("此方程有实数解")
e=b+(d**(1/2))
f=b-(d**(1/2))
A=e/(2*a)
B=f/(2*a)
z=int(input("请输入你计算的第一个值(分子)(不带根号)(加上的那个)"))
ax=int(input("请输入第一个值的分母,如没有,请输入“1”"))
y=int(input("请输入你计算的第一个值(根号下)如没有,请输入“0”"))
x=input("请输入你计算的第一个值的运算")
if x=='加':
DIYI=(z/ax)+y**(1/2)
if x=='减':
DIYI=(z/ax)-y**(1/2)
if DIYI==-A :
print("你算对了!")
else:
print("你算错了!")
zz=int(input("请输入你计算的第二个值(不带根号)(减去的那个)"))
bx=int(input("请输入第二个值的分母,如没有,请输入“1”"))
yy=int(input("请输入你计算的第二个值(根号下)如没有,请输入“0”"))
xx=input("请输入你计算的第二个值的运算")
if xx=='加':
DIER=(zz/bx)+yy**(1/2)
if xx=='减':
DIER=(zz/bx)-yy**(1/2)
if DIER==-B :
print("你算对了!")
else:
print("你算错了!")
if A !=B :
print("该方程的实数解为X1=",-A,"X2=",-B)
if A==B :
print("实数解为X1=X2=",-A)
结束