分子,分母的化简以及加减乘除

定义一个分数类(Fraction
         实例变量:分子,分母
         方法:初始化方法(2个参数),便利构造器,约分,打印,加,减,乘,除。


#import <Foundation/Foundation.h>
@interface Fraction : NSObject
{
    int _denominator;
    int _numerator;
}
-(id)initWithNumerator:(int)aNumrator;
-(id)initwWithDenominator:(int)aDenominator Numerator:(int)aNumerator;
//便利构造器
+(Fraction *)initwWithDenominator:(int)aDenominator Numerator:(int)aNumerator;
//settergetter方法;
-(void)setDenominator:(int)aDenominator;
-(int)denominator;
-(void)setNumerator:(int)aNumerator;
-(int)numerator;
//最大公约数,辗转相除法;
-(int)greatestCommonDivisorWithOtherNumber:(int)oneNumber another:(int)anotherNumber;
//约分
-(void)reductionOfFraction;
//打印
-(void)print;
//
+(Fraction *)addWithfaFraction:(Fraction *)aFraction bFaction:(Fraction *)bFaction;
//
+(Fraction *)minusWithfaFaction:(Fraction *)aFraction bFraction:(Fraction *)bFraction;
//
+(Fraction *)timeWithfaFraction:(Fraction *)aFraction bFraction:(Fraction *)bFraction;
//
+(Fraction *)divideWithfaFraction:(Fraction *)aFraction bFraction:(Fraction *)bFraction;


#import "Fraction.h"
@implementation Fraction
-(id)init{
    self = [super init];
    if (self) {
        _numerator= 12;
        _denominator = 16;
    }
    return self;
}
//自定义初始化方法;
-(id)initWithNumerator:(int)aNumrator{
    _numerator = aNumrator;
    return self;
}
-(id)initwWithDenominator:(int)aDenominator Numerator:(int)aNumerator{
    
    _numerator = aNumerator;
    _denominator = aDenominator;
    return self;
    
}
+(Fraction *)initwWithDenominator:(int)aDenominator Numerator:(int)aNumerator{
    Fraction *fraction = [[Fraction alloc] init];
    [fraction setNumerator:aNumerator];
    [fraction setDenominator:aDenominator];
    return fraction;
    
}
//settergetter方法;
-(void)setDenominator:(int)aDenominator{
    _denominator = aDenominator;
}
-(int)denominator{
    return _denominator;
}
-(void)setNumerator:(int)aNumerator{
    _numerator = aNumerator;
}
-(int)numerator{
    return _numerator;
}
//最大公约数,辗转相除法;
-(int)greatestCommonDivisorWithOtherNumber:(int)oneNumber another:(int)anotherNumber{
    while (anotherNumber != 0) {
        int temp = oneNumber % anotherNumber;
        oneNumber = anotherNumber;
        anotherNumber = temp;
    }
    return oneNumber;
}
//约分
-(void)reductionOfFraction{
    NSInteger temp = [self greatestCommonDivisorWithOtherNumber:_numerator another:_denominator];
    _numerator /= temp;
    _denominator /= temp;
}
//打印
-(void)print{
    NSLog(@" 分数:%d/%d",_numerator,_denominator);
}
//
+(Fraction *)addWithfaFraction:(Fraction *)aFraction bFaction:(Fraction *)bFaction{
    Fraction *result = [[Fraction alloc] init];
    result.denominator = aFraction.denominator*bFaction.denominator;
    result.numerator = aFraction.numerator*bFaction.denominator+bFaction.numerator*aFraction.denominator;
    [result reductionOfFraction];
    return result;
}
//
+(Fraction *)minusWithfaFaction:(Fraction *)aFraction bFraction:(Fraction *)bFraction{
    Fraction *result = [[Fraction alloc] init];
    result.denominator = aFraction.denominator * bFraction.denominator;
    result.numerator = aFraction.numerator * bFraction.numerator;
    [result reductionOfFraction];
    return result;
}
//
+(Fraction *)timeWithfaFraction:(Fraction *)aFraction bFraction:(Fraction *)bFraction{
    
    Fraction *result = [[Fraction alloc] init];
    result.denominator = aFraction.denominator * bFraction.denominator;
    result.numerator = aFraction.numerator*bFraction.numerator;
    [result reductionOfFraction];
    return result;
}
//
+(Fraction *)divideWithfaFraction:(Fraction *)aFraction bFraction:(Fraction *)bFraction{
    Fraction *result = [[Fraction alloc] init];
    result.denominator = aFraction.denominator * aFraction.numerator;
    result.numerator = aFraction.numerator * bFraction.denominator;
    [result reductionOfFraction];
    return result;
}
@end



在主函数中使用类,以及类中的方法:

Fraction *num1 = [[Fraction alloc] init];
        [num1 reductionOfFraction];
        [num1 print];
        Fraction *num2 = [[Fraction alloc]initwWithDenominator:12 Numerator:6];
        [num2 reductionOfFraction];
        [num2 print];
       
        Fraction *result1 = [Fraction addWithfaFraction:num1 bFaction:num2];
        [result1 print];
        Fraction *result2 = [Fraction minusWithfaFaction:num1 bFraction:num2];
        [result2 print];
        Fraction *result3 = [Fraction timeWithfaFraction:num1 bFraction:num2];
        [result3 print];
        Fraction *result4 = [Fraction divideWithfaFraction:num1 bFraction:num2];
        [result4 print];

        

        

        




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值