我是 objective-c 的新手,我开始学习iOS开发的基础知识。
如何在 objective-c 中轻松计算分数?
示例1: 1/8000 * 60
示例2: 1/640 / 1/400
我也需要将结果(如果其<1)作为分数。
最佳答案
我想我将实现一个新类,例如Fraction
,它具有两个属性,分子和分母。然后,我将实现以下四个功能(如果需要,可以实现更多):
- (Fraction*) add:(Fraction*)operand;
- (Fraction*) subtract:(Fraction*)operand;
- (Fraction*) multiply:(Fraction*)operand;
- (Fraction*) divide:(Fraction*)operand;
- (Fraction*) invert;
+ (Fraction*) fractionByAdding:(Fraction*)op1 to:(Fraction*)op2;
+ (Fraction*) fractionBySubtracting:(Fraction*)op1 from:(Fraction*)op2;
+ (Fraction*) fractionByMultiplying:(Fraction*)op1 with:(Fraction*)op2;
+ (Fraction*) fractionByDuviding:(Fraction*)op1 by:(Fraction*)op2;
+ (Fraction*) fractionByInverting:(Fraction*)operand;
在这些方法中,请执行您在学校学习的常用算术。记住要简化分子和分母是否具有共同的除数。
编辑:这些功能之一的示例实现:
- (Fraction*) add:(Fraction*)operand {
return [Fraction fractionByAdding:self to:operand];
}
+ (Fraction*) fractionByAdding:(Fraction*)op1 to:(Fraction*)op2 {
int num = (op1.numerator * op2.denominator) + (op2.numerator * op1.denominator);
int denom = op1.denominator * op2.denominator;
return [[Fraction alloc] initWithNumerator:num andDenominator:denom];
}
(可选)您可以添加
reduce
或simplify
方法,还可以添加allowReducible
属性和isIrreducible
方法。您还可以实现isEqual
和compareTo
方法。 description
应该只将“a / b”打印为NSString
。
关于objective-c - 如何在 objective-c 中使用分数进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10814152/