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

C++で合計が3の倍数であるサイズ2または3のすべての可能なグループをカウントします


このチュートリアルでは、合計が3の倍数であるサイズ2または3の可能なグループの数を見つけるプログラムについて説明します。

このチュートリアルでは、合計が3の倍数であるサイズ2または3の可能なグループの数を見つけるプログラムについて説明します。

#include<bits/stdc++.h>
using namespace std;
//returning count of pairs of
//2 or 3
int count_groups(int arr[], int n){
   int c[3] = {0}, i;
   int res = 0;
   for (i=0; i<n; i++)
      c[arr[i]%3]++;
   res += ((c[0]*(c[0]-1))>>1);
   res += c[1] * c[2];
   res += (c[0] * (c[0]-1) * (c[0]-2))/6;
   res += (c[1] * (c[1]-1) * (c[1]-2))/6;
   res += ((c[2]*(c[2]-1)*(c[2]-2))/6);
   res += c[0]*c[1]*c[2];
   return res;
}
int main(){
   int arr[] = {3, 6, 7, 2, 9};
   int n = sizeof(arr)/sizeof(arr[0]);
   cout << "Required number of groups are " << count_groups(arr,n) << endl;
   return 0;
}

出力

Required number of groups are 8

  1. C++でサイズnの指定された配列のr要素のすべての可能な組み合わせを出力します

    この問題では、サイズnと正の整数rの配列が与えられます。私たちの仕事は、サイザーの配列の要素の可能なすべての組み合わせを印刷することです。 問題を理解するために例を見てみましょう- Input: {5,6,7,8} ; r = 3 Output : {5,6,7}, {5,6,8}, {5,7,8}, {6,7,8} この問題を解決するためのアプローチは、要素を修正してから、他の要素を繰り返しまたはループしてすべての組み合わせを見つけることです。この場合、最初に n-r + 1を修正する必要があります 要素のみで、残りをループまたは繰り返します。 例 #include<iostrea

  2. C++のすべてのサブシーケンスの合計を求めます

    n個の要素を持つ配列Aがあるとします。配列のすべてのサブセットの合計の合計を見つける必要があります。したがって、配列がA =[5、6、8]の場合、-のようになります。 サブセット 合計 5 5 6 6 8 8 5,6 11 6,8 14 5,8 13 5,6,8 19 合計 76 配列にはn個の要素があるため、2n個のサブセット(空を含む)があります。はっきりと観察すると、各要素が2n〜1回発生していることがわかります 例 #include<iostream> #includ