📅  最后修改于: 2023-12-03 15:38:51.330000             🧑  作者: Mango
对于具有不同分母的分数,需要先进行通分处理,将它们转换为相同分母的分数,再进行加法运算。下面是一个示例程序实现。
def gcd(a, b):
"""
辗转相除法求最大公约数
"""
if b == 0:
return a
else:
return gcd(b, a % b)
def lcm(a, b):
"""
求最小公倍数
"""
return a * b // gcd(a, b)
class Fraction:
"""
分数类
"""
def __init__(self, numerator, denominator):
"""
初始化分子和分母
"""
self.numerator = numerator
self.denominator = denominator
def __add__(self, other):
"""
重载加法运算符
"""
lcm_num = lcm(self.denominator, other.denominator)
numerator1 = self.numerator * (lcm_num // self.denominator)
numerator2 = other.numerator * (lcm_num // other.denominator)
return Fraction(numerator1 + numerator2, lcm_num)
def __str__(self):
"""
重载字符串转换函数
"""
return "{}/{}".format(self.numerator, self.denominator)
以上代码定义了一个Fraction
类,其中__add__
方法实现了加法运算,__str__
方法将分数转换为字符串格式,gcd
和lcm
函数用于求最大公约数和最小公倍数。
a = Fraction(1, 3)
b = Fraction(1, 4)
c = a + b
print(c) # 7/12
以上代码实现了1/3和1/4相加的功能,输出结果为7/12。
以上就是如何添加具有不同分母的分数的方法。需注意的是,在处理分数加减时,需要将分数转换为相同分母的分数,再进行运算,最后将结果进行化简。