7-2 设计一元二次方程求解类(高教社,《Python编程基础及应用》习题9-4)——python
2023-12-29 11:49:07
设计一个类Root来计算ax2+bx+c=0的根。该类包括:a、b、c共3个属性表示方程的3个系数,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的两个根。
其中,getRoot1()返回的根对应:
getRoot2()返回的根对应:
类接口定义:
class Root: def __init__(self,a,b,c): ...
裁判测试程序样例:
a=float(input()) #请输入二次项系数 b=float(input()) #请输入一次项系数 c=float(input()) #请输入常数项系数 root=Root(a,b,c) if root.getDiscriminant()>0: print("{:.2f}".format(root.getRoot1())) print("{:.2f}".format(root.getRoot2())) elif root.getDiscriminant()==0: print("{:.2f}".format(root.getRoot1())) else: print("No Root!")
输入样例:
2.1
10.2
3.0
输出样例:
-0.31
-4.54
import math
class Root:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def getDiscriminant(self):
return self.b ** 2 - 4 * self.a * self.c
def getRoot1(self):
if self.getDiscriminant() < 0:
return "No Root!"
else:
root1 = (-self.b + math.sqrt(self.getDiscriminant())) / (2 * self.a)
return root1
def getRoot2(self):
if self.getDiscriminant() < 0:
return "No Root!"
else:
root2 = (-self.b - math.sqrt(self.getDiscriminant())) / (2 * self.a)
return root2
?
文章来源:https://blog.csdn.net/qq_64037242/article/details/135239170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!