我正在尝试制作一个类似于长加法的添加方法,所以我想从最后开始加法并向后工作,这样我就可以正确地进行进位等等。所以我目前正试图开始向后工作大批。例如我想做什么。两个字符为 123456789 的数组,我想从 9 + 9 开始添加它们,然后移动到 8+8
所以我很确定我正在使用正确的方法在数组上向后迭代,但每次我尝试时都会遇到运行时错误,索引超出范围,我不知道为什么。任何帮助都会很棒,我只是不知道为什么它一直抛出异常。
-(MPInteger *) add: (MPInteger *) x
{
NSMutableArray *a = self->intString;
NSMutableArray *b = x->intString;
NSMutableArray *c = [NSMutableArray arrayWithCapacity:100];
//for (int i = 0; i < [a count]; i++) {
for (NSInteger i = [a count] - 1; i > 0; i--) {
int num = 10;
NSNumber *ourNum = [NSNumber numberWithInt:num];
NSNumber *total = [NSNumber numberWithInt:[[a objectAtIndex:i] intValue] + [[b objectAtIndex:i] intValue]];
if ([total intValue] >= [ourNum intValue]) {
total = [NSNumber numberWithInt:([total intValue] - [ourNum intValue])];
[c addObject:[NSNumber numberWithInt:([total intValue])]];
} else {
[c addObject:[NSNumber numberWithInt:[[a objectAtIndex:i] intValue]+[[b objectAtIndex:i] intValue]]];
}
NSLog(@"%@", c[i]);
}
return x;
}