Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में दिए गए संख्या के बराबर गुणनफल वाले ट्रिपलेट्स की गिनती (डुप्लिकेट अनुमत)


हमें संख्याओं की एक सरणी Arr[] दी गई है। लक्ष्य उन ट्रिपलेट्स की संख्या गिनना है जिनका गुणनफल दी गई संख्या p के बराबर है। एक से अधिक ट्रिपलेट्स हो सकते हैं जिनके मान समान हैं लेकिन तत्व अलग हैं। उदाहरण के लिए, सरणी [1,2,3,1,2] में (1,2,3) और (3,1,2) को अलग गिना जाएगा यदि तत्व अलग हैं लेकिन मान समान हैं।

आइए उदाहरणों से समझते हैं।

इनपुट - arr[]= { 1,2,3,2,4,1,5 }, p=4

आउटपुट - ट्रिपलेट्स की संख्या: 3

व्याख्या -

ट्रिप्लेट 1[ 1,2,3,2,4,1,5 ] → (1,2,2) गुणनफल=4 ट्रिप्लेट 2 [ 1,2,3,2,4,1,5 ] → (1,4,1) गुणनफल=4 ट्रिप्लेट 3 [ 1,2,3,2,4,1,5 ] → (2,2,1) गुणनफल=4 गुणनफल 4 वाले ट्रिपलेट्स की संख्या 3 है।

इनपुट - arr[]= { 1,1,2,1,2,2 }, p=8

आउटपुट - ट्रिपलेट्स की संख्या: 1

व्याख्या -

ट्रिप्लेट 1 [ 1,1,2,1,2,2 ] → (2,2,2) गुणनफल=8 गुणनफल 8 वाले ट्रिपलेट्स की संख्या 1 है

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

  • हम यादृच्छिक संख्याओं से आरंभ एक पूर्णांक सरणी Arr[] लेते हैं।

  • एक वेरिएबल product लेते हैं जो गुणनफल मान स्टोर करता है। N Arr[] की लंबाई स्टोर करता है।

  • फंक्शन countTriplets(int arr[],int n,int p) एक सरणी, उसकी लंबाई और गुणनफल को इनपुट के रूप में लेता है और उन ट्रिपलेट्स को लौटाता है जिनका गुणनफल p के बराबर है।

  • ट्रिपलेट्स की संख्या के लिए प्रारंभिक वेरिएबल count को 0 के रूप में लेते हैं।

  • प्रत्येक ट्रिप्लेट के गुणनफल के लिए प्रारंभिक वेरिएबल prod को 1 के रूप में लेते हैं।

  • प्रत्येक ट्रिप्लेट के तत्व के लिए तीन फॉर लूप का उपयोग करके सरणी को पार करते हैं।

  • बाहरी लूप 0<=i

  • prod=arr[i]*arr[j]*arr[k] की गणना करते हैं। यदि prod==p तो काउंट बढ़ाते हैं।

  • सभी लूप के अंत में काउंट में शर्त पूरी करने वाले ट्रिपलेट्स की कुल संख्या होगी।

  • काउंट को वांछित परिणाम के रूप में लौटाते हैं।

उदाहरण

#include <bits/stdc++.h> using namespace std; int countTriplets(int arr[],int n,int p){ int count = 0; int prod=1; for (int i = 0; i < n-2; i++){ for (int j = i+1; j < n-1; j++){ for (int k = j+1; k < n; k++){ prod=arr[i]*arr[j]*arr[k]; if ( prod==p ){ count++; // cout<<endl<<"a :"< 

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -

ट्रिपलेट्स की संख्या: 18.

  1. - C++ में दिए गए अंक योग वाली N से छोटी या बराबर संख्याओं की गिनती

    एक स्ट्रिंग str दी गई है जिसमें एक संख्या है और एक योग total इनपुट के रूप में। लक्ष्य str तक की उन संख्याओं को ढूंढना है जिनके अंकों का योग total के बराबर है। उदाहरणों से समझते हैं। उदाहरण के लिए इनपुट - N=110  sum=5 आउटपुट - दिए गए अंक योग वाली N से छोटी या बराबर संख्याओं की संख्या: 7 व्याख्या

  1. - C++ में दिए गए GCD के बराबर उपसमुच्चयों की संख्या गिनें

    समस्या विवरण एक सरणी arr दी गई है जिसमें धनात्मक संख्याएं हैं और एक सरणी GCD[] जिसमें GCD मान हैं। लक्ष्य arr[] के तत्वों के उन उपसमुच्चयों की संख्या ज्ञात करना है जिनके GCD मान GCD[] में दिए गए हैं। उदाहरण इनपुट arr[] = {10, 5, 6, 3}, GCD[] = {2, 3, 5} आउटपुट दिए गए GCD के बराबर उपसमुच्चयों की सं

  1. C++ में क्रमबद्ध डबल लिंक्ड सूची में दिए गए गुणनफल x वाले ट्रिपलेट की गिनती C++ में क्रमबद्ध डबल लिंक्ड सूची में दिए गए गुणनफल x वाले ट्रिपलेट की गिनती

    समस्या विवरण एक क्रमबद्ध डबल लिंक्ड सूची दी गई है जिसमें पूर्णांक मान हैं। लक्ष्य उन ट्रिपलेट को ढूंढना है जिनका गुणनफल दिए गए मान x के बराबर है। यदि इनपुट लिंक्ड सूची 3-4-1-2 है और x 6 है तो गिनती 1 होगी (ट्रिपलेट (3,1,2))। उदाहरण इनपुट linked list: [200-4-16-5-10-10-2] x=200 आउटपुट दिए गए गुणनफ