欧几里得算法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
相关推荐
崇山峻岭之间10 小时前
Matlab学习记录40
开发语言·学习·matlab
Java后端的Ai之路10 小时前
【Python教程11】-文件
开发语言·python
先做个垃圾出来………11 小时前
SortedList(2)
开发语言
云栖梦泽11 小时前
易语言开发从入门到精通:补充篇·文件批量操作深度实战·常用格式处理·自动化脚本开发·性能优化
开发语言
Big Cole11 小时前
PHP面试题(核心基础篇:垃圾回收+自动加载)
android·开发语言·php
2301_8223754411 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_7066532311 小时前
跨语言调用C++接口
开发语言·c++·算法
2301_7903009611 小时前
Python类型提示(Type Hints)详解
jvm·数据库·python
小罗和阿泽11 小时前
复习 Java(2)
java·开发语言
无小道11 小时前
Qt——信号槽
开发语言·qt