欧几里得算法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 分钟前
[硬核实战] 解锁多模态RAG:构建能“看懂”PDF复杂图表的智能问答系统
人工智能·python·pdf·多模态·rag
weixin_307779136 分钟前
Jenkins Pipeline: Basic Steps 插件详解
开发语言·ci/cd·自动化·jenkins·etl
Chen--Xing8 分钟前
LeetCode 49.字母异位词分组
c++·python·算法·leetcode·rust
Dxy12393102169 分钟前
Python数据类型入门
python
柯南二号9 分钟前
【后端】【Java】RESTful书面应该如何写
java·开发语言·restful
切糕师学AI10 分钟前
如何用 VS Code + C# Dev Kit 创建类库项目并在主项目中引用它?
开发语言·c#
孤独冷11 分钟前
ComfyUI 本地部署精华指南(Windows + CUDA)
windows·python
JIngJaneIL12 分钟前
基于Java+ vueOA工程项目管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
闲人编程14 分钟前
测试驱动开发与API测试:构建可靠的后端服务
驱动开发·python·flask·api·tdd·codecapsule
tang&16 分钟前
Qt 基础教程:从初识到信号槽机制
开发语言·qt