我试图从递归数组和奇数之和得到偶数的总和,然后将两个总和加在一起。我试图循环数组,以便获得偶数,但它会保持返回第一个索引。请提前帮助和谢谢..
我的目标是采用数组2,1,5,9,8,4取偶数索引并将其添加到奇数索引中。 a [0] = 2,a [1] = 1,a [2] = 5,a [3] = 9,a [4] = 8,a [5] = 4。所以需要(2 + 5 + 8) - (1 + 9 + 4)= 1
这是我到目前为止我不熟悉递归所以我的代码可能会关闭
int calc(int *a, int size)
{
if(size==1 || size==0)
return a[0];
for(int i=0; i<size; i++){
if(i%2==0){
int sum_i = a[i];
int m=calc(a, size-1);
if(m>a[size-1])
return m;
}
}
for(int j=0; j<size; j++){
if(j%2!=0);
int sum_j = a[j];
return sum_j;
}
int sum = a[i] - a[j];
int e = calc(a, size-1);
if(e%2==0)
return e=e+0; //return even
return sum;
}
int main( )
{
int a[6]={1,2,3,5,6,2};
int size = 6;
cout<< calc(a, size)<<endl;
system("pause");
return 0;
}
答案 0 :(得分:1)
你不需要递归吗?
// calc(): returns sum(a[0], a[2], a[4], ...) - sum(a[1], a[3], a[5], ...)
int calc(int *a, int size)
{
int sum_even_pos = 0;
int sum_odd_pos = 0;
for (int i = 0; i < size; i++)
{
sum_even_pos += a[i];
if (++i < size) sum_odd_pos += a[i];
}
return sum_even_pos - sum_odd_pos;
}