在 C++ 中查找具有偶数和的子数组的数量

在这个问题中,我们得到一个由 N 个元素组成的数组 arr[]。我们的任务是找到具有偶数和的子数组。

让我们举个例子来理解这个问题,

输入

arr[] = {2, 1, 3, 4, 2, 5}
输出结果
28

解释

子数组是 -

{2}, {4}, {2}, {2, 4}, {2, 2}, {1, 3}, {1, 5}, {3, 5}, {4, 2}, {2, 1, 3}, {2, 1, 5}, {2, 3, 5}, {2, 4, 2}, {1, 3, 4}, {1, 3, 2}, {1, 4, 5}, {1, 2, 5}, {3, 4, 5}, {3, 2, 5}, {2, 1, 3, 4}, {2, 1, 3, 2}, {2, 3, 4, 5}, {2, 3, 2, 5}, {2, 4, 2, 5}, {1, 3, 4, 2}, {1, 4, 2, 5}, {3, 4, 2, 5}, {2, 1, 3, 4, 2}, {2, 1, 3, 4, 2, 5}

解决方法

该问题的一个简单解决方案是使用直接方法,即通过计算所有子数组及其总和。和偶数和的子数组的增加计数。最后返回计数。

程序来说明我们的解决方案的工作,

示例

#include<iostream>

using namespace std;

int countEvenSumSubArray(int arr[], int n){

   int evenSumCount = 0, sum = 0;

   for (int i=0; i<=n-1; i++){

      sum = 0;

      for (int j=i; j<=n-1; j++){

         sum += arr[j];

      if (sum % 2 == 0)

         evenSumCount++;

      }

   }

   return (evenSumCount);

}

int main(){

   int arr[] = {2, 1, 4, 2};

   int n = sizeof (arr) / sizeof (arr[0]);

   cout<<"具有偶数和的子数组的数量是 "<<countEvenSumSubArray(arr, n);

   return (0);

}

输出结果
The number of solutions of the linear equation is 8

以上是 在 C++ 中查找具有偶数和的子数组的数量 的全部内容, 来源链接: utcz.com/z/352694.html

回到顶部