欧几里得算法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
相关推荐
报错小能手4 分钟前
ios开发方向——swift并发进阶核心 Task、Actor、await 详解
开发语言·学习·ios·swift
小辉同志10 分钟前
208. 实现 Trie (前缀树)
开发语言·c++·leetcode·图论
A-刘晨阳10 分钟前
当数据学会“秒回“:工业4.0时代的实时计算革命
开发语言·数据库·perl
沐知全栈开发11 分钟前
Lua 基本语法
开发语言
Where-11 分钟前
LangChain、LangGraph入门
python·langchain·langgraph
极光代码工作室14 分钟前
基于机器学习的垃圾短信识别系统
人工智能·python·深度学习·机器学习
小李子呢021116 分钟前
前端八股JS---ES6新增内容
开发语言·javascript·ecmascript
yaoxin52112320 分钟前
381. Java IO API - 控制文件树遍历流程
java·开发语言
2201_7568473322 分钟前
如何设置备库只接日志不应用_暂停MRP且维持网络传输的方法
jvm·数据库·python
zhaoshuzhaoshu23 分钟前
Python 语法之控制结构详解
开发语言·python