首页 > 其他分享 >分数类(自动化简)

分数类(自动化简)

时间:2024-09-23 17:13:32浏览次数:7  
标签:分数 return gcd int 自动化 operator frac fixed

#include<bits/stdc++.h>
using namespace std;
class frac{
    private:
        int z,m;
    public:
        frac(int x=0,int y=1){
            z=x,m=y;
            fixed();
        }
        frac fixed(){
            int gcd=__gcd(abs(z),abs(m));
            if(m<0){
                m*=-1;z*=-1;
            }
            if(z==0){
                m=1;return;
            }
            if(gcd==0) return *this;
            z/=gcd;m/=gcd;
            return *this;
        }
        frac upside(){
            return frac(m,z);
        }
        frac operator = (pair<int,int>A){
            z=A.first;m=A.second;fixed();
            return *this;
        }
        frac operator + (frac A){
            return (frac(z*A.m+m*A.z,m*A.m)).fixed();
        }
        frac operator * (frac A){
            return (frac(z*A.z,m*A.m)).fixed();
        }
        frac operator / (frac A){
            return (*this*A.upside()).fixed();
        }
        frac operator -(){
            return frac(-z,m);
        }
        frac operator -(frac A){
            return *this+(-A);
        }
        bool operator <(frac A){
            return z*A.m<A.z*m;
        }
        bool operator ==(frac A){
            return z*A.m==A.z*m;
        }
        bool operator >(frac A){
            return !(*this==A and *this<A);
        }
        void print(){
            fixed();
            cout<<z<<"/"<<m<<endl;
        }
};

标签:分数,return,gcd,int,自动化,operator,frac,fixed
From: https://www.cnblogs.com/HaneDaCafe/p/18427422

相关文章

  • 滚雪球学SpringCloud[9.2讲]:CI/CD与自动化部署详解
    全文目录:前言1.持续集成与持续交付的基本概念1.1持续集成(CI)1.1.1持续集成的主要优势1.2持续交付(CD)1.2.1持续交付的主要特点1.3CI与CD的区别与联系2.使用Jenkins与GitLab实现CI/CD管道2.1使用Jenkins实现CI/CD2.1.1Jenkins简介2.1.2Jenkins的安装与配置2.1.3......
  • UI自动化selenium
    需要用到谷歌浏览器,谷歌对应版本的驱动chromedriver,selenium,Python文件夹一、selenium1、selenium是python中的一个第三方库(讲课3.141.0版本)2、通过python中的webdriver+selenium进行二次封装的库selenium23、特点:免费、安装简单、支持多语言、多平台、多浏览器selenium安......
  • D15【python接口自动化学习】-python基础之内置数据类型
    day15字典的常见操作(上)学习日期:20240922学习目标:内置数据类型--24常见常新:字典的常见操作(上)学习笔记:字典的内置函数访问字典的内容#访问字典的所有元素mail_list={'tom':'[email protected]','jerry':'[email protected]','john':'[email protected]'}print(mail_li......
  • 影刀RPA与钉钉、宜搭、云文档、AI结合的自动化办公应用研究
    摘要随着信息技术的快速发展,企业对于提高办公效率和质量的需求日益增长。影刀RPA(RoboticProcessAutomation,机器人流程自动化)作为一种新兴的技术,与钉钉、宜搭、云文档、AI等工具的结合,为自动化办公提供了新的可能性。本文旨在探讨影刀RPA与这些工具结合所能实现的自动化......
  • 【接口自动化测试】jsonpath应用:提取数据、断言、接口关联
    安装命令pipinstalljsonpath表达式importjsonpathres=jsonpath.jsonpath(obj,expr)1、返回结果要么是list,要么是False2、obj 要提取的对象,应为字典类型。报文的格式是json,必须进行数据的转换, 用json.loads()将json转换成字典类型   expr jsonpath表......
  • appium+python自动化代码示例
    fromselenium.webdriver.common.byimportByimporttime#设置Appium连接参数caps={"platformName":"Android","platformVersion":"7.1.2",#根据夜神模拟器的Android版本进行修改"deviceName":"127.0.0.......
  • 如何在自动化测试中应用装饰器、多线程优化自动化架构?
    1、装饰器概念        装饰器是Python中用于修改函数或类的语法结构的工具。它以函数作为输入参数,并返回一个函数作为一个输出函数,在不改变原有函数的代码情况下,给函数增加功能或改变函数行为。        装饰器的使用方式是在函数定义的上方使用@decorator_n......
  • app自动化之adb报错合集
    1、提示这个错误,很多时候说的是adb版本过旧导致的,说的更新一下abd,但是使用SDKManager安装platform-tools(内含adb)选择的是最新的版本,所以不存在adb过旧,只能是其他原因。此时得考虑一下端口被占用的原因。百度了一下最后发现是因为360手机助手占用了对应端口,将360手机助手关闭或是......
  • 如何使用 Bittly 进行基于串口的自动化测试
    串口通信是一种常见的通信方式,广泛用于嵌入式设备、传感器及其他硬件设备的数据交互与控制。通过串口通信,我们能够实时监控设备状态、发送指令并接收反馈。在自动化测试场景中,Bittly提供了一套灵活高效的工具,能够快速创建和管理自动化测试任务,简化复杂的测试流程。同时,Bitt......
  • 数据飞轮实现游戏行业市场主导:自动化营销的新典范
    在现代的数据驱动时代,游戏行业特别依赖于数据分析和数据驱动的决策制定。从数据仓库出发,经过数据中台的发展,最终到达了数据飞轮模式。这一系列的进步显著提高了游戏公司在市场竞争中的敏捷性和效率。本文将深入探讨这一转变如何在游戏行业中实现自动化营销、提供全景客户视图,并有效......