欧几里得算法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
相关推荐
2301_81359955几秒前
如何设计MongoDB的金融交易流水表_防篡改与精确金额存储Decimal128
jvm·数据库·python
m0_676544385 分钟前
MySQL报错Client does not support authentication_升级客户端
jvm·数据库·python
qyzm8 分钟前
Educational Codeforces Round 189 (Rated for Div. 2)
数据结构·python·算法
fox_lht8 分钟前
8.3.使用if let和let else实现简明的程序流控制
开发语言·后端·算法·rust
z44247532610 分钟前
SQL中GROUP BY与WHERE子句顺序_如何正确在聚合前过滤数据
jvm·数据库·python
AI玫瑰助手14 分钟前
Python基础:列表的定义、增删改查核心操作
android·开发语言·python
mOok ONSC15 分钟前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang
吕源林15 分钟前
golang如何实现项目错误码规范_golang项目错误码规范实现指南
jvm·数据库·python
深藏功yu名17 分钟前
大模型推理加速实战技术
人工智能·python·ai·pycharm
qq_3729069322 分钟前
Layui表格怎么实现在表头的右侧添加一个自定义配置图标
jvm·数据库·python