您的位置:首页 > 其它

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

2014-08-11 22:15 1236 查看
.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐