C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

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<<"The count of Subarrays with even sum is "<<countEvenSumSubArray(arr, n);
   return (0);
}

出力

The number of solutions of the linear equation is 8

  1. C ++プログラムで数の偶数の因数の合計を見つけるには?

    このプログラムは、すべての偶数因子を見つけ、これらの偶数因子の合計を計算して出力として表示するために使用されます。 例- Input : 30 Even dividers : 2+6+10+30 = 48 Output : 48 このために、私たちはすべての要因を見つけます。それらの偶数を見つけて合計を見つけます それ以外の場合は、式を使用して素因数を使用して因子の合計を求めます。 Sum of divisors = (1 + d11 + d12 ... d1a1) *(1 + d21 + d22 ... d2a2) *...........................* (1 +

  2. 数の偶数の因数の合計を見つけるC++プログラム?

    このセクションでは、効率的な方法で、ある数のすべての素因数の合計を取得する方法を説明します。 n =480と言う数があります、これのすべての要因を取得する必要があります。 480の素因数は2、2、2、2、2、3、5です。すべての偶数の因数の合計は2 + 2 + 2 + 2 + 2 =10です。この問題を解決するには、この規則に従う必要があります。 − 数値が2で割り切れる場合は、それらを合計に加算し、数値を2で繰り返し除算します。 今、数は奇数でなければなりません。したがって、均等な要素は見つかりません。次に、それらの要因を単に無視します。 より良いアイデアを得るためのアル