Objective-C:如何将存储在数组中的所有数字加在一起?

时间:2012-07-12 18:58:48

标签: objective-c

所以我正在制作一个程序,它会在1000以下找到3和5的倍数。然后它会将所有的倍数存储到数组中。最终结果是将数组中的所有值相加并打印出来。到目前为止,这是我的代码。

NSMutableArray *sums = [NSMutableArray arrayWithCapacity:25];


int a,b,i;

for (i = 0; i <= 1000; i++){
    a = i%3;
    b = i%5;

    if (a==0 || b==0){


        [sums addObject:[NSNumber numberWithInteger:i]];


    }
}


NSLog(@"\nThe sum of all the multiples of 3 and 5 between 1 and 1000 is %i", );

我的问题是:如何将存储在数组“sums”中的所有值加在一起?

2 个答案:

答案 0 :(得分:4)

NSNumber *sum = [sums valueForKeyPath:@"@sum.self"];
NSLog(@"\nThe sum of all the multiples of 3 and 5 between 1 and 1000 is %i", [sum intValue]);

答案 1 :(得分:2)

如何将存储在数组中的所有数字加在一起?

您可以使用enumerateObjectsUsingBlock:例如:

int __block total = 0;

[myArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    NSNumber *myNumber = (NSNumber*)obj;
    total += obj.intValue;
}];

NSLog(@"Total: %d", total);

请注意,您使用的是NSNumbers,如果您需要起诉floats,请进行相应的调整。