欧几里得算法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
相关推荐
佩洛君2 分钟前
如何在Ubuntu22.04中安装ROS2-Humble
c++·python·ros2
昆曲之源_娄江河畔4 分钟前
婴儿版训练GPT
python·gpt·机器学习·大模型训练
qq_4138474019 分钟前
Redis怎样设计企业级备份策略_结合全量RDB与增量AOF实现多级数据保护
jvm·数据库·python
iiiiyu21 分钟前
常用API(StringJoiner类 & Math类 & System类)
java·大数据·开发语言·数据结构·编程语言
qq_3729069326 分钟前
如何通过点击事件动态展开和收起 HTML 元素
jvm·数据库·python
qq_3721542339 分钟前
Golang Gin怎么做JWT登录认证_Golang Gin JWT教程【实用】
jvm·数据库·python
2401_8716965240 分钟前
C#怎么实现文件上传下载 C#如何用WebAPI实现大文件断点续传功能【网络】
jvm·数据库·python
Xiu Yan42 分钟前
Java 转 C++ 系列:函数对象、谓词和内建函数对象
java·开发语言·c++
m0_3776182342 分钟前
如何在 pytest 中通过组合多个 fixture 实现参数化测试
jvm·数据库·python
Full Stack Developme44 分钟前
Hutool StrUtil 教程
开发语言·网络·python