欧几里得算法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
相关推荐
csbysj202019 小时前
DOM 验证
开发语言
codists19 小时前
《Grokking Concurrency》读后感
python
superman超哥19 小时前
Rust 表达式与语句的区别:函数式思维与控制流设计
开发语言·后端·rust·rust表达式·rust语句·函数式思维·控制流设计
坤岭19 小时前
Python内存溢出问题
python
三木彤19 小时前
Python 反爬 UA 检测真实案例(3个典型场景,可复现、合法合规)
python
SCBAiotAigc19 小时前
MinerU离线推理
人工智能·python·mineru
94620164zwb519 小时前
关于应用模块 Cordova 与 OpenHarmony 混合开发实战
python·学习
趁月色小酌***19 小时前
JAVA 知识点总结5
java·开发语言·python
05大叔19 小时前
SpringMVCDay01
java·开发语言
代码游侠19 小时前
复习——网络测试工具
linux·开发语言·网络·笔记·学习·测试工具