欧几里得算法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
相关推荐
love_and_hope5 分钟前
Pytorch学习--神经网络--利用GPU训练
人工智能·pytorch·python·神经网络·学习·数据挖掘
一只专注api接口开发的技术猿9 分钟前
python 京东api怎么写
大数据·开发语言·数据库·python
不太爱喝水19 分钟前
外星人入侵
开发语言·python·pygame
TomSmile_WorkSpace1 小时前
RabbitMq项目实战--延迟队列实现超时订单处理
开发语言·后端·ruby
Python技术极客1 小时前
数据分析师必学:Series多层级索引与数据操作技巧
python·数据分析
喜欢打篮球的普通人1 小时前
Rust面向对象特性
开发语言·windows·rust
晨曦_子画1 小时前
C#中:Any() 与 Count,选择哪一个??
开发语言·windows·c#
m0_676099581 小时前
Python高阶函数以及装饰器
开发语言·python
golitter.1 小时前
python正则表达式库及re学习01
python·学习·正则表达式
Mr_Xuhhh1 小时前
递归搜索与回溯算法--递归(2)
开发语言·数据结构·c++·算法·链表·深度优先