Нечетные-четные подмассивы

Вам дан массив A из N положительных целых чисел. Подмассив этого массива называется подмассивом нечетных-четных, если количество нечетных целых чисел в этом подмассиве равно количеству четных целых чисел в этом подмассиве.

Найти количество четных и нечетных подмассивов для заданного массива.

int main(){
int n,i,j,count=0,sum;
scanf("%d",&n);
 int arr[n];
for(i=0;i<n;i++){
    scanf("%d",&arr[i]);
}
for(i=0;i<n;i++){
    sum=0;
    for(j=i;j<n;j+=2){
        sum+=(arr[j+1]+arr[j]);
        if(sum%2!=0)
                ++count;
    }
}
printf("%d",count);
return 0;}

кто-нибудь может помочь мне с моим кодом


person Dark Lord    schedule 26.03.2018    source источник
comment
Это C или C++?   -  person Obsidian Age    schedule 27.03.2018


Ответы (1)


Вы предполагаете, что если сумма до определенного индекса нечетная, то это означает, что она нечетная-четная. Однако ваше определение Odd-Even гласит, что количество нечетных # и четных # должно быть одинаковым. Таким образом, ваш алгоритм потерпит неудачу в таких случаях, как: 1, 2, 3, 5 -> сумма равна 11, но 3 нечетных 1 четных.

Кроме того, ваш первый цикл также может увеличиваться на два, поскольку, если количество элементов нечетное, количество нечетных чисел никоим образом не будет равно количеству четных чисел.

person Alex Lin    schedule 26.03.2018