欧几里得算法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
相关推荐
Zhansiqi7 小时前
day42部分题目
python
小王不爱笑1327 小时前
IO 模型
开发语言·python
kishu_iOS&AI7 小时前
Conda 简要说明与常用指令
python·安全·conda
小陈工8 小时前
FastAPI性能优化实战:从每秒100请求到1000的踩坑记录
python·性能优化·django·flask·numpy·pandas·fastapi
知我Deja_Vu8 小时前
【避坑指南】ConcurrentHashMap 并发计数优化实战
java·开发语言·python
njidf8 小时前
用Python制作一个文字冒险游戏
jvm·数据库·python
AI+程序员在路上8 小时前
CANopen 协议:介绍、调试命令与应用
linux·c语言·开发语言·网络
2401_831824968 小时前
基于C++的区块链实现
开发语言·c++·算法
呆呆小孩8 小时前
Anaconda 被误删抢救手册:从绝望到重生
python·conda
liliangcsdn8 小时前
LLM复杂数值的提取计算场景示例
人工智能·python