首页 > 代码库 > 创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。要求:为类添加属性
创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。要求:为类添加属性
//在.h文件里 { NSInteger _numerator; //分子 NSInteger _denominator; //分母 } //属性 @property (nonatomic) NSInteger numerator; @property (nonatomic) NSInteger denominator; //初始化 - (id)initwithNumerator:(NSInteger)numerator denominator:(NSInteger)denominator; //加法 - (void)sumNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2; //减法 - (void)subNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2; //乘法 - (void) mulNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2; //除法 - (void) divNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2; //比较大小 - (void)compareNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2; //约分 - (void)reduceNumerator:(NSInteger)numerator denominator:(NSInteger)denominator; return [NSStringstringWithFormat:@"%ld/%ld",_numerator,_denominator]; } //初始化 - (id)initwithNumerator:(NSInteger)numerator denominator:(NSInteger)denominator { self = [superinit]; if (self) { _numerator = numerator; _denominator = denominator; } returnself; } //约分 - (void)reduceNumerator:(NSInteger)numerator denominator:(NSInteger)denominator { NSInteger num = 0; for (NSInteger i = numerator; i > 0; i --) { for (NSInteger j = denominator; j > 0; j --) { if (numerator % i == 0 && denominator %j == 0&& i == j) { num =i; } if (num ==i) { break; } } if (num==i) { break; } } _numerator = numerator / num; _denominator = denominator / num; } //加法 - (void)sumNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2 { NSInteger _numerator1 = numerator1 * denominator2 + numerator2 *denominator1; NSInteger _denominator1 = denominator1 * denominator2; Fraction *sum = [[Fractionalloc] init]; [sum reduceNumerator:_numerator1 denominator:_denominator1]; NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,sum); } //减法 - (void)subNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2 { NSInteger _numerator1 = numerator1 * denominator2 - numerator2 *denominator1; NSInteger _denominator1 = denominator1 * denominator2; Fraction *sub = [[Fractionalloc] init]; [sub reduceNumerator:_numerator1 denominator:_denominator1]; NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,sub); } //乘法 - (void) mulNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2 { NSInteger _numerator1 = numerator1 * numerator2 ; NSInteger _denominator1 = denominator1 * denominator2; Fraction *mul = [[Fractionalloc] init]; [mul reduceNumerator:_numerator1 denominator:_denominator1]; NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,mul); } //除法 - (void) divNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2 { NSInteger _numerator1 = numerator1 * denominator2 ; NSInteger _denominator1 = denominator1 * numerator2; Fraction *div = [[Fractionalloc] init]; [div reduceNumerator:_numerator1 denominator:_denominator1]; NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,div); } //比较大小 - (void)compareNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2 { _numerator = numerator1 * denominator2; _denominator = numerator2 * denominator1; NSInteger num = _numerator - _denominator; if (num > 0) { NSLog(@"%ld/%ld 比 %ld/%ld 大",numerator1,denominator1,numerator2,denominator2); } else { NSLog(@"%ld/%ld 比 %ld/%ld 小",numerator1,denominator1,numerator2,denominator2); } } //在main函数里调用方法 Fraction *fraction = [[Fractionalloc] initwithNumerator:5denominator:6]; //加法 [fraction sumNumerator1:4denominator1:5numerator2:3denominator2:5]; //减法 [fraction subNumerator1:2denominator1:5numerator2:1denominator2:3]; //乘法 [fraction mulNumerator1:3denominator1:8numerator2:5denominator2:6]; //除法 [fraction divNumerator1:11denominator1:15numerator2:11denominator2:20]; [fraction reduceNumerator:fraction.numeratordenominator:fraction.denominator]; //比较大小 [fraction compareNumerator1:3denominator1:8numerator2:4denominator2:9]; //约分 [fraction reduceNumerator:6denominator:10]; NSLog(@"约分后结果为%@",fraction);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。