0

所以我正在制作一个程序,它将在 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”中的所有值加在一起?

4

2 回答 2

5
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]);
于 2012-07-12T19:03:39.607 回答
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进行相应调整。

于 2012-07-12T19:02:02.780 回答