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", );

私の質問は、配列「合計」に保存したすべての値をどのように加算できますか?

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 に答える