求两个分数的加减乘除,并比较大小

2024-04-08 05:08

本文主要是介绍求两个分数的加减乘除,并比较大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//初始化分子分母
-(instancetype)initWithFz:(NSInteger)fz andFm:(NSInteger)fm{if (self = [super init]) {_fz = fz;_fm = fm;}return self;}//便利构造器
+(instancetype)initWithFz:(NSInteger)fz andFm:(NSInteger)fm{Fraction * f = [[Fraction alloc]initWithFz:fz andFm:fm];return f;
}//最大公约数
-(NSInteger)maxDivisor:(NSInteger)num1 : (NSInteger)num2{if (num1 * num2 == 0) {return 0;}else{NSInteger max = (num1>num2) ? num1 : num2;NSInteger min = (num1<num2) ? num1 : num2;NSInteger rem = 1;while (rem != 0) {rem = max % min;max = min;min = rem;}return max;}
}//约分
-(void)reduceFraction{NSInteger greatCommonDivisor = [self maxDivisor:_fz :_fm];if (greatCommonDivisor == 0) {return;}else{_fz/=greatCommonDivisor;_fm/=greatCommonDivisor;}
}//相加
-(Fraction *)addFraction:(Fraction *)frac{Fraction * f = [[Fraction alloc]init];f.fz = _fz * frac.fm + _fm * frac.fz;f.fm = _fm * frac.fm;[f reduceFraction];return f;
}//相减
-(Fraction *)subFraction:(Fraction *)frac{Fraction * f = [[Fraction alloc]init];f.fz = _fz * frac.fm - _fm * frac.fz;f.fm = _fm * frac.fm;[f reduceFraction];return f;
}//相乘
-(Fraction *)mulFraction:(Fraction *)frac{Fraction * f = [[Fraction alloc]init];f.fz = _fz * frac.fz;f.fm = _fm * frac.fm;[f reduceFraction];return f;
}//相除
-(Fraction *)divFraction:(Fraction *)frac{Fraction * f = [[Fraction alloc]init];f.fz = _fz * frac.fm;f.fm = _fm * frac.fz;[f reduceFraction];return f;
}//比较大小
-(Fraction *)maxValue:(Fraction *)frac{Fraction * f = [[Fraction alloc]init];_fz = _fz * frac.fm;frac.fz = _fm * frac.fz;f.fz = ( _fz > frac.fz ? _fz : frac.fz);f.fm = _fm * frac.fm;[f reduceFraction];return f;
}//打印分数
-(void)printFraction{if (_fz * _fm >= 0) {NSLog(@"两分数运算结果为:%ld/%ld",_fz,_fm);}else{NSLog(@"两分数运算结果为:-%ld/%ld",labs(_fz),labs(_fm));}
}


这篇关于求两个分数的加减乘除,并比较大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/884646

相关文章

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

C#中图片如何自适应pictureBox大小

《C#中图片如何自适应pictureBox大小》文章描述了如何在C#中实现图片自适应pictureBox大小,并展示修改前后的效果,修改步骤包括两步,作者分享了个人经验,希望对大家有所帮助... 目录C#图片自适应pictureBox大小编程修改步骤总结C#图片自适应pictureBox大小上图中“z轴

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl