方法为:a/b+c/d=( (a*d)+(b*c) )/(b*d)
(1).h文件
#import <Foundation/Foundation.h>
@interface Fraction : NSObject //fraction分数
@property int numerator,denominator;//denominator分母 numerator分子
-(void)print;
-(void)setTo:(int)n over :(int)d;
-(double) convertToNum; //convertion转换
-(void)add:(Fraction *)f;
-(void)reduce; //reduce减少
@end
(2).m文件
#import"Fraction.h"
@implementationFraction
@synthesizenumerator,denominator;
-(void)print
{
NSLog(@"%i/%i",numerator,denominator);
}
-(double)convertToNum
{
if(denominator!=0)
{
return(double)numerator/denominator;
}
else
returnNAN;
}
-(void)setTo:(int)n over:(int)d
{
numerator=n;
denominator=d;
}
//添加Fraction到消息接受
-(void)add:(Fraction*)f
{
//添加两个分数:
//a/b+c/d=((a*d)+(b*c))/(b*d) //两个分数相加的另一种求法
numerator=numerator* f.denominator+denominator* f.numerator; //这里的*是乘的意思
denominator=denominator* f.denominator;
}
-(void)reduce
{
intu=numerator;
intv=denominator;
inttemp;
while(v!=0) {
temp=u%v;
u=v; //求最大公约数的方法
v=temp;
}
numerator/=u; 这两步是化简分数
denominator/=u;
}
@end