欧几里得算法python

一、问题描述

求最大公约数

python 复制代码
class Fraction:
    def __init__(self, a, b):
        self.a = a
        self.b = b
        x = self.gcd(a, b)
        self.a /= x
        self.b /= x

    def gcd(self, a, b):
        while b >0:
            r = a % b
            a = b
            b = r
        return a

    def zgs(self, a, b):
        x = self.gcd(a, b)
        return a / x * b

    def __add__(self, other):
        a = self.a
        b = self.b
        c = other.a
        d = other.b
        fenmu = self.zgs(b, d)
        fenzi = a * fenmu / b + c * fenmu / d
        return Fraction(fenzi, fenmu)

    def __str__(self):
        return "%d/%d" % (self.a, self.b)

a = Fraction(1, 3)
b = Fraction(1, 2)
print(a+b)

二、结果展示

python 复制代码
5/6
相关推荐
小江的记录本几秒前
【大语言模型】大语言模型——核心概念(预训练、SFT监督微调、RLHF/RLAIF对齐、Token、Embedding、上下文窗口)
java·人工智能·后端·python·算法·语言模型·自然语言处理
西西学代码几秒前
查找设备页面(amap_map)
开发语言·前端·javascript
坐吃山猪1 分钟前
Python04_序列和字符串
python
tang7451639627 分钟前
mac的ideal中调用driver = webdriver.Chrome() 启动不了的原因
chrome·python·macos
码云数智-大飞14 分钟前
CSS 优先级详解:告别样式冲突,掌控网页“层叠”艺术
人工智能·python·tensorflow
迦南的迦 亚索的索19 分钟前
PYTHON_DAY21_数据分析
开发语言·python·数据分析
阿Y加油吧20 分钟前
栈的经典应用:字符串解码 & 每日温度 深度解析
数据结构·python·算法
枫叶丹422 分钟前
【HarmonyOS 6.0】ArkWeb 手势获焦模式详解:告别点击获焦,迎接长按触发
开发语言·华为·harmonyos
ID_1800790547323 分钟前
如何使用 Python 调用小红书笔记评论 API 时进行并发控制?
开发语言·笔记·python
lsx20240630 分钟前
PHP Error处理指南
开发语言