เราได้รับอาร์เรย์ขององค์ประกอบที่ทำซ้ำหรือซ้ำกัน และภารกิจคือค้นหาผลิตภัณฑ์ขององค์ประกอบทั้งหมดที่ไม่ซ้ำหรือแตกต่างกันในอาร์เรย์ที่กำหนดและแสดงผลลัพธ์
ตัวอย่าง
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