创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。

.h文件

#import <Foundation/Foundation.h>

@interface Fraction : NSObject
@property (nonatomic) NSInteger numerator;//分子
@property (nonatomic) NSInteger denominator;//分母
-(id)initWithNumerator:(NSInteger)numerator denominator:(NSInteger)denominator;//初始化
-(void)reductionOfFraction;//约分
-(void)add:(Fraction*)fraction;//相加
-(void)subtract:(Fraction*)fraction;//相减
-(void)multiply:(Fraction*)fraction;//相乘
-(void)divide:(Fraction*)fraction;//相除
-(NSInteger)compare:(Fraction*)fraction;//比较


@end

.m文件

初始化方法等都是初级的 并没有涉及内存管理

#import "Fraction.h"

@implementation Fraction
-(id)initWithNumerator:(NSInteger)numerator denominator:(NSInteger)denominator{
    self = [super init];
    if (self) {
        _numerator = numerator;
        _denominator = denominator;
    }
    return self;
}
-(void)reductionOfFraction{
    NSInteger a = self.numerator;
    NSInteger b = self.denominator;
    NSInteger c = 0;
    while (b != 0) {
        c = a % b;
        a = b;
        b = c;
    }
    NSLog(@"%ld/%ld",self .numerator/a,self. denominator/a);
}//约分
-(void)add:(Fraction*)fraction{
    Fraction *fra = [[Fraction alloc]init];
    fra.numerator = (self.numerator*fraction.denominator) +(fraction.numerator*self.denominator);
    fra.denominator = self.denominator*fraction.denominator;
    [fra  reductionOfFraction];
}//相加
-(void)subtract:(Fraction*)fraction{
    Fraction *fra = [[Fraction alloc]init];
    fra.numerator = (self.numerator*fraction.denominator) - (fraction.numerator*self.denominator);
    fra.denominator = self.denominator*fraction.denominator;
    [fra  reductionOfFraction];
}//相减
-(void)multiply:(Fraction*)fraction{
    Fraction *fra = [[Fraction alloc]init];
    fra.numerator = self.numerator*fraction.denominator;
    fra.denominator = self.denominator*fraction.numerator;
    [fra  reductionOfFraction];
}//相乘
-(void)divide:(Fraction*)fraction{
    Fraction *fra = [[Fraction alloc]init];
    fra.numerator = self.numerator*fraction.numerator;
    fra.denominator = self.denominator*fraction.denominator;
    [fra  reductionOfFraction];
}//相除
-(NSInteger)compare:(Fraction*)fraction{
    NSInteger a = self.numerator*fraction.denominator;
    NSInteger b = fraction.numerator*self.denominator;
    if (a > b) {
        return 1;
    } else if (a < b){
        return -1;
    }else{
        return 0;
    }
}//比较
@end


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值