欧几里得算法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
相关推荐
2401_841495643 分钟前
【数据结构】汉诺塔问题
java·数据结构·c++·python·算法·递归·
枫叶丹411 分钟前
【Qt开发】输入类控件(五)-> QDateTimeEdit
开发语言·qt
xxxxxxllllllshi23 分钟前
Java 集合框架全解析:从数据结构到源码实战
java·开发语言·数据结构·面试
爱编程的鱼39 分钟前
Python 与 C++、C 语言的区别及选择指南
c语言·开发语言·c++
哈里谢顿42 分钟前
Celery app 实例为何能在 beat、worker 等进程中“传递”?源码与机制详解
python
运维闲章印时光1 小时前
网络断网、环路、IP 冲突?VRRP+MSTP+DHCP 联动方案一次性解决
运维·服务器·开发语言·网络·php
lly2024061 小时前
TypeScript 循环
开发语言
liulilittle1 小时前
OPENPPP2 静态隧道链路迁移平滑(UDP/IP)
开发语言·网络·c++·网络协议·tcp/ip·udp·通信
qq_402605651 小时前
python爬虫(二) ---- JS动态渲染数据抓取
javascript·爬虫·python
AI数据皮皮侠2 小时前
中国地级市旅游人数、收入数据(2000-2023年)
大数据·人工智能·python·深度学习·机器学习·旅游