首页 > 编程语言 >欧几里得算法(辗转相除法)-- 实现分数计算

欧几里得算法(辗转相除法)-- 实现分数计算

时间:2023-08-19 23:44:05浏览次数:40  
标签:__ return -- 欧几里得 fenmu Fraction 除法 self def

博客地址:https://www.cnblogs.com/zylyehuo/

# -*- coding: utf-8 -*-
"""
利用欧几里得算法实现一个分数类,支持分数的四则运算(加法)
"""


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):
        # 12 16 -> 4
        # 3*4*4=48
        x = self.gcd(a, b)
        return a * b / x

    # 加法
    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)

标签:__,return,--,欧几里得,fenmu,Fraction,除法,self,def
From: https://www.cnblogs.com/zylyehuo/p/17643452.html

相关文章

  • abp-vnext-pro 实战(八,聚合根的写法,客户M:N地址)
    参考数据字典模块的写法///<summary>///地址///</summary>publicclassAddress:FullAuditedAggregateRoot<Guid>,IMultiTenant{publicGuid?TenantId{get;protectedset;}///<summary>///公司名///</summary>p......
  • 01 简介、基础语法
    一、Python简介1、简介Python由荷兰数学和计算机科学研究学会的吉多范罗苏姆于1990年设计,Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言。2021年10月,语言流行指数的编译......
  • VS2015项目.net-framework-4.5.2升级或新建项目无法选择framework 4.6.2(解决办法)
    VS2015里面没有.NETFramework4.6.2VS2015默认安装的目标框架最高是.NETFramework4.6.1,但是我的项目里面某些NuGet软件包更新需要依赖.NETFramework4.6.2,项目就需要升级到目标框架.NETFramework4.6.2VS2015项目无法选择framework4.6.2的解决办法:第一步:系统环境安装.NET......
  • 02 基本数据类型(数字、字符串)
    一、基本数据类型1、数据类型●Python3中有六个标准的数据类型●Number(数字)●String(字符串)●List(列表)●Tuple(元组)●Dictionary(字典)●Set(集合)2、数字2.1数字类型分为:●整型(int):Python3整型没有限制大小,可以当作Long类型使用,Python3没有Python2的Long类型。●浮点型(float):浮......
  • 折腾dir-505
    简介:折腾过w720n做打印服务器,已经有一台通过usb-hub,共享3台打印机给网络了。最近看dir-505也不错,还支持最新的openwrt,外观也比720n可爱了一些,就海鲜市场下了一台。原厂不死原厂自带不死,随便折腾,但是说明书上貌似没写。按着reset按钮,插入电源,直到红灯慢闪,才可以松开。设置本......
  • 03-04 基本数据类型(列表、元组、字典、集合)
    一、列表1、访问列表中的值list=['red','green','blue','yellow','white','black']print(list[0])#'red'print(list[1])print(list[2])print(list[-1])#blackprint(list[-2])#whiteprint(li......
  • Gym103687D The Profiteer:回滚莫队信息双指针可以做到线性对数
    标题写得好所谓的回滚莫队信息意思是,设信息保存在两个大小分别为\(a,b\)的结构上,将这两个信息进行合并得到大小为\(a+b\)的信息需要的时间为\(\Omega(\min\{a,b\}\cdotf(n))\);而给定一个大小为\(1\)的信息,可以在\(\mathrmO(f(n))\)时间内将它加入到任何一个结构中......
  • 巨杉数据库荣获2023胡润中国元宇宙潜力企业未来之星
    巨杉数据库凭借其在分布式文档型数据库领域的技术实力和创新能力,再次荣获2023胡润中国元宇宙潜力企业榜未来之星称号。近期,第二届胡润中国元宇宙高峰论坛暨《2023胡润中国元宇宙潜力企业榜》发布活动在广州南沙举办。作为国内基础软件的代表性厂商,巨杉数据库凭借其在分布式文档型......
  • 《摆与混》第三十五章--8月12日--周六
    周六,开摆。1.今天做了什么:今天8点半起床。洗漱后,简单吃了早饭,早上重回经典节奏,小小的学了会,下午摆烂时间,4点和哥们去羽毛球馆打球,晚上有客人来,招待了一下,还看了会比赛。2.解决了什么问题:Java课程推进,PTA继续冲击,加快了进度。3.明天干什么:预计继续学习Java,PTA同步跟进,大计划开始......
  • python创建虚拟环境【其它人项目】
    download他人项目-创建虚拟环境这是别人的项目打开pycahrm的终端,创建虚拟环境名字为venv【python-mvenvvenv】此时文件目录多出一个venv目录设置里面选择虚拟环境关闭pycahrm里面终端,重开会自动进入虚拟环境里面结束!......