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

C++ में अनुमत डुप्लिकेट के साथ दी गई संख्या के बराबर उत्पाद के साथ ट्रिपल की संख्या की गणना करें


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

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

इनपुट - गिरफ्तारी [] ={ 1,2,3,2,4,1,5 }, p=4

आउटपुट − त्रिगुणों की संख्या:3

स्पष्टीकरण -

Triplet 1[ 1,2,3,2,4,1,5 ] → (1,2,2) product=4
Triplet 2 [ 1,2,3,2,4,1,5 ] → (1,4,1) product=4
Triplet 3 [ 1,2,3,2,4,1,5 ] → (2,2,1) product=4
Number of triplets with product 4 is 3.

इनपुट - गिरफ्तारी [] ={ 1,1,2,1,2,2 }, p=8

आउटपुट - त्रिकों की संख्या - 1

स्पष्टीकरण -

Triplet 1 [ 1,1,2,1,2,2 ] → (2,2,2) product=8
Number of triplets with product 8 is 1

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

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

  • एक परिवर्तनीय उत्पाद लें जो उत्पाद मूल्य को संग्रहीत करता है। N Arr[] की लंबाई संग्रहीत करता है।

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

  • ट्रिपल की संख्या के लिए प्रारंभिक चर गणना को 0 के रूप में लें।

  • प्रारंभिक चर उत्पाद को प्रत्येक त्रिक के गुणनफल के रूप में लें। प्रारंभ में 1.

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

  • 0<=i

  • उत्पाद की गणना करें =एआर [i] * एआर [जे] * एआर [के]। अगर ठेस ==पी तो वेतन वृद्धि गिनती।

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

  • वांछित परिणाम के रूप में गिनती लौटाएं।

उदाहरण

#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 :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
               }
            }
         }
      }  
   }
   return count;
}
int main(){
   int Arr[]={ 1,2,3,6,1,6,3,2,1};
   int N=9; //length of array
   int product=6;
   cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N,product);
   return 0;
}

आउटपुट

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

Number of triplets : 18.

  1. C++ में दिए गए अंकों के योग के साथ संख्याएं (N से छोटी या उसके बराबर) गिनें

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

  1. C++ में दी गई संख्या के बराबर GCD वाले सेट के सबसेट की संख्या गिनें

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

  1. एक क्रमबद्ध डबल लिंक्ड सूची में ट्रिपल गिनें जिसका उत्पाद सी ++ में दिए गए मान x के बराबर है

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