在数组中每隔第n个数字添加一组数字 - iPhone

时间:2013-11-29 10:13:45

标签: ios iphone objective-c arrays

我知道我的问题可能不太清楚,所以我会尽力解释。我有一个数组array1,其中有多个双打。我想,每个第n个数字,将这些“n”数字(通过添加)组合成一个double,甚至可以将它添加到它自己的数组array2 示例:

1\
2 \
3  \
4   > (1 + 2 + 3...) <--object 0 in `array2`
5  /
6 /
7/
8 \
9  \
10  \
11   > (8 + 9 + 10...) <--object 1 in `array2`
12  /
13 /
14/

上述序列中的第n个数字为7。我想我必须每7个数字将数组分成较小的数组。这可能吗?请提出任何建议。

2 个答案:

答案 0 :(得分:1)

Logic:
array1= array with elements
array2= array in which combined results will be saved
float fResult=0;

int i=0;
while(i<array1.count)
{
for(int j=0;j<n;j++)
{ 
  if(i>=array1.count)
 {
 break;
 } 

   if(j==0)
  {
   fResult=0;
  }

   fResult=fResult+[[array1 objectAtIndex:i]floatValue];
   i++;

   if(j==n-1 || i==array1.count)
   {
    [array2 addObject:[NSNumber numberWithFloat:fResult]];
   }

}
}

这里n是要在一个元素中组合的元素的数量。在你的情况下它是7。

希望这会有所帮助:)

答案 1 :(得分:0)

我只是把逻辑;

MainArray;
array1;
array2;
int n = 7;
int loopNumber = ceil(MainArray/n);

for(int k = 0; k < loopNumber ; k ++)
{
   for(int i = 0; i < n ; i ++)
   {
       if(k == 0)
         [array1 addObject:[MainArray objectAtIndex:i]];
       if(k == 1)
         [array2 addObject:[MainArray objectAtIndex:i]];

   } 
}