欧几里得算法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
相关推荐
吴佳浩15 小时前
Python入门指南(六) - 搭建你的第一个YOLO检测API
人工智能·后端·python
长安第一美人16 小时前
C 语言可变参数(...)实战:从 logger_print 到通用日志函数
c语言·开发语言·嵌入式硬件·日志·工业应用开发
Larry_Yanan16 小时前
Qt多进程(一)进程间通信概括
开发语言·c++·qt·学习
superman超哥16 小时前
仓颉语言中基本数据类型的深度剖析与工程实践
c语言·开发语言·python·算法·仓颉
不爱吃糖的程序媛16 小时前
Ascend C开发工具包(asc-devkit)技术解读
c语言·开发语言
bu_shuo16 小时前
MATLAB奔溃记录
开发语言·matlab
Learner__Q17 小时前
每天五分钟:滑动窗口-LeetCode高频题解析_day3
python·算法·leetcode
————A17 小时前
强化学习----->轨迹、回报、折扣因子和回合
人工智能·python
你的冰西瓜17 小时前
C++标准模板库(STL)全面解析
开发语言·c++·stl
徐先生 @_@|||17 小时前
(Wheel 格式) Python 的标准分发格式的生成规则规范
开发语言·python