Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ผลิตภัณฑ์ขององค์ประกอบที่ไม่ซ้ำ (แตกต่าง) ใน Array ใน 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