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

C ++の配列内の非反復(個別)要素の積


繰り返しまたは重複する要素の配列が与えられます。タスクは、指定された配列内で繰り返されない、または異なるすべての要素の積を見つけて、結果を表示することです。

Input-: arr[] = {2, 1, 1, 2, 3, 4, 5, 5 }
Output-: 120
Explanation-: Since 1, 2 and 5 are repeating more than once so we will take them into 
consideration for their first occurrence. So result will be 1 * 2 * 3 * 4 * 5 = 120
Input-: arr[] = {1, 10, 9, 4, 2, 10, 10, 45, 4 }
Output-: 32400
Explanation-: Since 10 and 4 are repeating more than once so we will take them into consideration 
for their first occurrence. So result will be 1 * 10 * 9 * 4 * 2 * 45  = 32400
になります。

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

  • 重複する要素を配列に入力します
  • より良いアプローチとして、配列の要素を昇順で並べ替えて、どの配列要素が繰り返されているかを簡単に判断し、製品に考慮しないようにします。
  • 配列内のすべての個別の要素を検索し、結果を保存してそれらを乗算し続けます
  • 配列内のすべての個別の要素の積として最終結果を表示します

アルゴリズム

Start
Step 1-> Declare function to find the product of all the distinct elements in an array
   int find_Product(int arr[], int size)
   Declare and set int prod = 1
   Create variable as unordered_set<int> s
   Loop For  i = 0 and i < size and i++
      IF s.find(arr[i]) = s.end()
         Set  prod *= arr[i]
         Call s.insert(arr[i])
      End
   End
   return prod
Step 2 -: In main()
   Declare and set int arr[] = { 2, 1, 1, 2, 3, 4, 5, 5 }
   Calculate the size of an array int size = sizeof(arr) / sizeof(int)
   Call find_Product(arr, size)
Stop

include <bits/stdc++.h>
using namespace std;
//function that calculate the product of non-repeating elements
int find_Product(int arr[], int size) {
   int prod = 1;
   unordered_set<int> s;
   for (int i = 0; i < size; i++) {
      if (s.find(arr[i]) == s.end()) {
         prod *= arr[i];
         s.insert(arr[i]);
      }
   }
   return prod;
}
int main() {
   int arr[] = { 2, 1, 1, 2, 3, 4, 5, 5 };
   int size = sizeof(arr) / sizeof(int);
   cout<<"product of all non-repeated elements are : "<<find_Product(arr, size);
   return 0;
}

出力

product of all non-repeated elements are : 120

  1. C++の配列内のすべての素数の積

    いくつかの要素を持つ整数配列arr[]が与えられた場合、タスクはその数のすべての素数の積を見つけることです。 素数は、1で割った数、またはその数自体です。または、素数は、1とその数自体を除いて他の数で割り切れない数です。 1、2、3、5、7、11など 与えられた配列の解を見つける必要があります- 入力 −arr [] ={11、20、31、4、5、6、70} 出力 − 1705 説明 −配列の素数は− 11、31、5であり、それらの積は1705 入力 − arr [] ={1、2、3、4、5、6、7} 出力 − 210 説明 −配列の素数は− 1、2、3、5、7

  2. 配列要素の乗算のためのC++プログラム

    整数要素の配列で与えられ、タスクは配列の要素を乗算して表示することです。 例 Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 以下のプログラムで使用されるアプローチは次のとおりです − 一時変数を初期化して、最終結果を1で格納します ループを0からnまで開始します。nは配列のサイズです 最終結果を得るには、tempの値にarr[i]を掛け続