# MacDefine a class, which implements arithmetic with arbitrary precision

#### haitszon

##### macrumors newbie
Original poster
Hi everyone!
I'm currently doing some exercises in a objective-c book. One of them is: define a class, which implements arithmetic (+, -, /, *, %) with arbitrary precision. This is a new type with just some arithmetic operations. We can do some arithmetic with an infinite precision.
I'm aware that there exist libraries to do this, but I need to attempt to implement it myself. Is there anyone can help?

Staff member

#### haitszon

##### macrumors newbie
Original poster
It is just a lab book at my school. I've already read through all these. The task is to implement a class to support arbitrary precision integer arithmetic. In other words, write code to do addition, subtraction, division, multiplication, and modulus for integers at any length for the following interface:

@interface MPInteger : NSObject

-(id) initWithString: (NSString *) x;
-(NSString *) description;

-(MPInteger *) add: (MPInteger *) x;
-(MPInteger *) subtract: (MPInteger *) x;
-(MPInteger *) multiply: (MPInteger *) x;
-(MPInteger *) divideBy: (MPInteger *) x;
-(MPInteger *) modulus: (MPInteger *) x;

-(BOOL) isLessThan: (MPInteger *) x;

Is there anyone can help? much appreciated if someone can give me some idea to start!

#### PatrickCocoa

##### macrumors 6502a
Remember elementary school?

No, not that time you puked in front of the class. You were taught how to add and subtract manually. I'm assuming they still do that, and don't just show you how to hit numbers on a calculator.

Anyway, just implement that addition algorithm using the string inputs. Pull off each digit, starting at the rightmost (least significant digit), add them (if you have only two operands then you know the result will be at most 18), determine what the carry digit is, and build the answer that way.

Once you've done addition, then do multiplication. Then subtraction, and finally division.