所以我正在制作一个程序,它会在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”中的所有值加在一起?
答案 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
,请进行相应的调整。