[Java]两个有理数的加减乘除

2023-11-07

public class Rational {
        private long num=0; //分子
        private long den=1; //分母
        /************Begin*****************/
        long i;
        public Rational(long num,long den){
            this.num=num;
            this.den=den;
        }
        public long getnum(){
            return num;
        }
        public long getden(){
            return den;
        }
        public Rational add(Rational r){
            long den1=this.den*(r.getden());
            long num1=this.num*(r.getden())+(r.getnum())*this.den;
            /*simplify(num1,den1);*/
            if(num1>=den1){
                for(i=num1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            else{
                for(i=den1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            num1=(num1/i);den1=(den1/i);

            return new Rational(num1,den1);
        }
        public Rational substract(Rational r){
            long den1=this.den*(r.getden());
            long num1=this.num*(r.getden())-(r.getnum())*this.den;
            /*simplify(num1,den1);*/
            if(num1>=den1){
                for(i=num1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            else{
                for(i=den1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            num1=(num1/i);den1=(den1/i);
            return new Rational(num1,den1);
        }
        public Rational multiply(Rational r){
            long den1=this.den*(r.getden());
            long num1=this.num*(r.getnum());
            /*simplify(num1,den1);*/
            if(num1>=den1){
                for(i=num1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            else{
                for(i=den1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            num1=(num1/i);den1=(den1/i);
            return new Rational(num1,den1);
        }
        public Rational divide(Rational r){
        long den1=this.den*(r.getnum());
        long num1=this.num*(r.getden());
        /*simplify(num1,den1);*/
            if(num1>=den1){
                for(i=num1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            else{
                for(i=den1;;i--)
                    if(num1%i==0&&den1%i==0) break;
            }
            num1=(num1/i);den1=(den1/i);
        return new Rational(num1,den1);
    }
    public String toString(){
        return num+"/"+den;
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[Java]两个有理数的加减乘除 的相关文章

  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • Hibernate HQL:将对值作为 IN 子句中的参数传递

    我面临一个问题 如何使用 IN 子句将查询中的成对值的参数传递给 HQL 例如 select id name from ABC where id reg date in x y 并且参数是不同的数据类型string id 和reg date
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 对于当前月份和日期但年份不同的日期,经过的月份计算未给出正确的结果

    我正在尝试计算自特定日期以来经过的月份 该函数工作正常 尽管如果我将今天的日期与过去的不同年份放在一起 它会给我一个月的差异 不到一个月 假设对于所有日期 该函数都运行良好 除了 如果今天是 2014 03 06 YYYY MM DD 并且
  • 将 unsigned char * (uint8_t *) 转换为 const char *

    我有一个带有 uint8 t 参数的函数 uint8 t ihex decode uint8 t in size t len uint8 t out uint8 t i hn ln for i 0 i lt len i 2 hn in i
  • C++ 复制初始化和直接初始化,奇怪的情况

    在继续阅读本文之前 请阅读在 C 中 复制初始化和直接初始化之间有区别吗 https stackoverflow com questions 1051379 is there a difference in c between copy i
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • 如何捕获 try-with-resource 语句中 close 方法抛出的异常

    我正在读关于try with resourceJava 中的语句可用于指定任意数量的资源 try Resource1 res1 initialize code Resource1 res2 initialize code statement
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 14.SpringData-Mongo

    SpringData Mongo Spring data对MongoDB做了支持 使用spring data mongodb可以简化MongoDB的操作 封装了底层的mongodb driver 地址 https spring io pro
  • opencv图像畸变矫正:源码学习

    参考资料 相机标定 4 矫正畸变 undistort 和initUndistortRectifyMap 背景 opencv提供了直接进行畸变矫正的代码 因在项目中需要使用畸变矫正 因此研究一下opencv中畸变矫正的相关接口与代码 便于学习
  • 凸优化学习(六)——一个简单的对偶实例

    注意 本文内容来自于吴恩达老师cs229课堂笔记的中文翻译项目 https github com Kivy CN Stanford CS 229 CN 中的凸优化部分的内容进行翻译学习 2 一个简单的对偶实例 作为对偶的一个简单应用 在本节
  • 最接近的三数之和

    题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target 请你从 nums 中选出三个整数 使它们的和与 target 最接近 返回这三个数的和 假定每组输入只存在恰好一个解 示例 输入 nums 1 2 1 4 t
  • (计算机复试考研)操作系统重点知识梳理

    1 操作系统引论 操作系统 配置在计算机硬件上的第一层软件 是对硬件系统的首次扩充 为用户和应用程序提供一个简单接口 定义 一组能有效组织和管理计算机硬件和软件的资源 合理地对各类作业进行调度 方便用户使用的程序的集合 操作系统的目标 1
  • C++线程池的实现

    池式结构 在计算机体系结构中有许多池式结构 内存池 数据库连接池 请求池 消息队列 对象池等等 池式结构解决的主要问题为缓冲问题 起到的是缓冲区的作 线程池 通过使 线程池 我们可以有效降低多线程操作中任务申请和释放产 的性能消耗 特别是当
  • Android OpenGL ES零基础系列(三):OpenGL ES的渲染管道及VertexShader与FragmentShader

    前言 在前2篇文章中 我们都说到着色器 且在第二篇中正式说到 这着色器只能用在OpenGL ES2 x等可编程管道里面 而在OpenGL ES1 x是不能用的 但我们一直没有说这是为什么 两者有什么区别 那这篇我们就一起来学习下OpenGL
  • react新出来两个钩子函数是什么?和删掉的will系列有什么区别?

    react新旧生命周期的区别 1 新生命周期中去掉了三个will钩子 分别为componentWillMount componentWillReceiveProps componentWillUpdate 2 新生命周期中新增了两个钩子 分
  • DB2数据库-获取表结构异常:[jcc][t4][1065][12306][4.26.14]CharConvertionException ERRORCODE=-4220,SQLSTATE=null

    背景如下 DB2数据库 获取表结构异常 jcc t4 1065 12306 4 26 14 CharConvertionException ERRORCODE 4220 SQLSTATE null 搜索引擎搜索解决办法 官方解决方法 db2
  • Transformer(四)--实现验证:transformer 机器翻译实践

    转载请注明出处 https blog csdn net nocml article details 125711025 本系列传送门 Transformer 一 论文翻译 Attention Is All You Need 中文版 Tran
  • HBase与MapReduce整合:TableMapper与TableReducer部分源码分析

    目录 关于TableMapper和TableReducer TableMapReduceUtil initTableMapperJob initTableReducerJob TableInputFormat TableRecordRead
  • 基于Hybris平台的电商个性化服务实践

    个性化服务是什么 下面例举几个典型的电商网站的个性化服务案例 对于浏览过新品推荐的客户 电商网站主动为此类客户推荐一款新上市的商品 对于单笔订单总金额达到1000 并且该订单中包含化妆品的客户 此用户将被升级为金牌客户 后续电商网站定期为金
  • RAID介绍及RAID5配置实例(超详细)

    一 RAID磁盘阵列介绍 磁盘阵列的全名 Redundant Arrays of Inexpensive Disk RAID 中文简称是独立冗余磁盘阵列 RAID可以通过技术 软件或者硬件 将多个独立的物理硬盘整合成为一个较大的硬盘组 逻辑
  • MATLAB实现基本的遗传算法(写成函数形式,可调用),优化目标函数,并举例展示

    遗传算法 其本质上是一种进化算法 相比其他的算法应用范围比较广泛 特别是对于一些非线性 多模型 多目标的函数优化问题 用其他的优化方法较难求解 而遗传算法可以方便的得到较好的结果 不过正如我在PSO粒子群算法的文章中说道 每种算法的应用场景
  • Ubuntu: 安装最新版本的 Nginx

    Ubuntu 默认 apt 源中的 Nginx 版本比较旧 今天介绍下如何在 Ubuntu 中安装最新版本的 Nginx 要安装较新版本的 Nginx 可以使用 Nginx 的 APT 源 执行如下脚本来添加 Nginx APT 源 bin
  • gitlab项目的备份与迁移

    gitlab项目的备份与迁移 最近工作中需要用到gitlab项目的备份与迁移工作 因此做了一个简单的部署配置 这里小小记录一下 一 gitlab的安装 1 安装准备 1 本人由于在centos7上部署gitlab 因此使用的gitlab的版
  • unity3d 启动项目卡在load script assembly

    最近突然碰到unity启动项目 卡在load script assembly的情况 删除了library重开也还是如此 日志打印里面打印到 刷新script开始然后就戛然而止了 后来发现是 项目里某个文件夹被一个命令行占用了 unity在导
  • 安装nrm报错

    internal validators js 124 throw new ERR INVALID ARG TYPE name string value TypeError ERR INVALID ARG TYPE The path argu
  • 2023华为OD机试真题【最接近中位数的索引】

    前言 本题使用Java解答 如果需要python版本答案 请查看以下链接 Python版本答案 题目内容 给定一个数组X和正整数K 请找出使表达式X i x i 1 X i K 1 结果最接近于数组中位数的下标i 如果有多个i满足条件 请返
  • [Java]两个有理数的加减乘除

    public class Rational private long num 0 分子 private long den 1 分母 Begin long i public Rational long num long den this nu