欧几里得算法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
相关推荐
爱装代码的小瓶子16 分钟前
【c++进阶】从C++98到C++11的奇妙旅程(故事科普版)
开发语言·c++
智航GIS19 分钟前
2.3 运算符详解
开发语言·python
屋顶那猫19 分钟前
使用pyinstaller打包pytest项目
python·pytest
web3.088899923 分钟前
接入API-自动化批量获取淘宝商品详情数据
开发语言·python
刹那间的回眸x.y29 分钟前
UnitTestReport挺好用
python
世转神风-39 分钟前
qt-在字符串中指定位置插入字符串
开发语言·qt
时光呀时光慢慢走43 分钟前
C# WinForms 实战:MQTTS 客户端开发(与 STM32 设备通信)
开发语言·c#
码农水水1 小时前
腾讯Java面试被问:阻塞队列BlockingQueue的实现原理
java·后端·python·面试
曲幽1 小时前
Flask登录验证实战:从零构建一个基础的账号密码登录系统
python·flask·web·session·username·login
superman超哥1 小时前
仓颉类型别名的使用方法深度解析
c语言·开发语言·c++·python·仓颉