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

C++で指定された数の配列要素の平均の発生をカウントします


整数要素と整数numを含む配列arr[]が与えられます。目標は、各要素arr [i]とnumの平均を求め、その平均が元の配列に出現した回数のカウントを出力することです。

配列arr[]が[5、2、3]で、numが2の場合、平均は[3、2、2]になります。arr[]のオカレンスは[1,1,1]

です。

入力

arr[] = { 1, 6, 4, 3, 6, 4 } num=2

出力

1 2 1 0 2 1

指定された数の配列要素の平均の発生数は-5です

説明

The num is 4 and averages with all other numbers in arr[] is :
[ 1, 4, 3, 2, 4, 3 ] occurrences of these in arr[]= [ 1, 2, 1, 0, 2, 1 ]

入力

arr[] = { 4, 8, 24, 16, 20, 40 } num=4

出力

1 0 0 0 0 0

指定された数の配列要素の平均の発生数は-1です

説明

The num is 4 and averages with all other numbers in arr[] is :
[ 4, 6, 14, 10, 12, 22 ] occurrences of these in arr[]= [ 1, 0, 0, 0, 0, 0 ]

以下のプログラムで使用されるアプローチは次のとおりです

このアプローチでは、平均とその数を元の配列に格納するためのマップを作成します。これらのカウントを別の配列に追加して、発生数を出力します。

  • 整数型のarr[]を取ります。

  • 入力数値を整数とします。

  • 関数occurrence_average(int arr []、int size、int num)は、入力配列とnumを受け取り、平均の出現配列をarr[]に出力します。ゼロ以外の発生回数を返します。

  • 初期カウント=0を取ります。

  • map map_pairを取得して、一意の数の数をarr[]に格納します。

  • 各平均のカウントを格納するために配列total[]を取ります。

  • forループfromindexi=0からi

  • ループの最後に、キーとして一意の数値があり、値としてarr[]のカウントがあります。

  • forループを使用して配列を再度トラバースし、個々の要素ごとにnumの平均を計算し、tempに格納します。

  • そのtempがmap_pair.find(temp)!=map_pair.end()を使用してmap_pairで見つかった場合は、それを配列の合計に追加します。

  • arr[]で発生する平均のカウントの配列合計を出力します。ゼロ以外の要素ごとに、カウントをインクリメントします。

  • 結果としてカウントを返します。

#include<bits/stdc++.h>
using namespace std;
int occurrence_average(int arr[], int size, int num){
   int count = 0;
   map<int,int> map_pair;
   int total[size] = {0};
   int val, av;
   for (int i = 0; i < size; i++){
      if (map_pair[arr[i]] == 0){
         map_pair[arr[i]] = 1;
      } else {
         map_pair[arr[i]]++;
      }
   }
   for (int i = 0; i < size; i++){
      int temp = int((arr[i] + num) / 2);
      if(map_pair.find(temp) != map_pair.end()){
         int set = map_pair[temp];
         total[i] = set;
      }
   }
   cout<<endl;
   for(int i=0;i<size;i++){
      cout<<total[i]<<" ";
      if(total[i]>0){
         count++;
      }
   }
   return count;
}
int main(){
   int arr[] = { 4, 8, 24, 16, 20, 40 };
   int size = sizeof(arr)/sizeof(arr[0]);
   int num = 4;
   cout<<endl<<"Count of occurrences of the average of array elements with a given
      number are: "<<occurrence_average(arr, size, num);
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of occurrences of the average of array elements with a given number are:
1 0 0 0 0 0 1

  1. C++で指定された要素のセットを持つ長方形と正方形の可能な数

    この問題では、n本の棒の長さを示すN個の整数の配列が与えられます。私たちの仕事は、与えられた長さの棒から作成できる長方形と正方形の数を印刷することです。 問題を理解するために例を見てみましょう 入力 −配列={5、5、7、7、1、4} 出力 − 1 説明 −辺が5 577の長方形。 この問題を解決するには、長方形や正方形が可能かどうかを確認する必要があります。 ここで、正方形または長方形を作成するには、同じ長さの2つのスティックが必要です。長方形の場合は2つ、正方形の場合は4つです。ここで、配列で、同じ長さのスティックのペアをチェックする必要があります。この検索を簡単にするために、配

  2. C++の配列内の偶数要素と奇数要素の数をカウントします

    このチュートリアルでは、配列内の偶数要素と奇数要素の数を見つけるプログラムについて説明します。 このために、アレイが提供されます。私たちのタスクは、指定された配列の偶数要素と奇数要素の数を計算することです。 例 #include<iostream> using namespace std; void CountingEvenOdd(int arr[], int arr_size){    int even_count = 0;    int odd_count = 0;    //looping through the