Odd-Even子阵列

时间:2018-03-26 21:51:31

标签: arrays sub-array

您将获得一个N个正整数值的数组A.如果此子阵列中奇数整数的数量等于此子阵列中的偶数整数,则此数组的子数组称为奇数偶数子阵列。

查找给定数组的奇数偶数子数。

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;}

任何人都可以帮我处理我的代码

1 个答案:

答案 0 :(得分:0)

您假设如果某个索引的总和是奇数,那么这意味着它是奇数偶数。但是,你对Odd-Even的定义表明奇数#和偶数#s必须相同。因此,在以下情况下,您的算法会失败: 1,2,3,5 - &gt;总和是11,但是3奇数1甚至。

另外,你的第一个循环也可以增加两个,因为如果元素的数量是奇数,那么奇数的数量就不会等于偶数的数量。