【发布时间】:2022-11-17 04:12:30
【问题描述】:
我正在尝试 reduce(self) 以返回具有最低值的分数。
这是我的代码:
class fraction:
def __init__(self,numerator,denominator):
self.numerator = numerator
self.denominator = denominator
self.reduce()
def get_numerator(self):
return self.numerator
def get_denominator(self):
return self.denominator
def reduce(self):
pass
def __str__(self):
return str(self.numerator) + "/" + str(self.denominator)
这是测试代码:
# y = fraction(2*7,7*2)
# z = fraction(13,14)
# a = fraction(13*2*7,14)
# print(x)
# print(y)
# print(z)
# print(a)
我不想使用 math.gcd 或导入分数,而是手动完成。
如果没有这些操作员,我不确定该尝试什么。这可能是一个 while 循环吗?
【问题讨论】:
-
您是否尝试阅读如何实施欧几里德的 GCD 算法? en.wikipedia.org/wiki/Euclidean_algorithm 我所知道的最简单的 GCD 算法。
-
您需要 GCD 操作。您可以使用
math.gcd或自己重新发明轮子。
标签: python