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

सी ++ में सरणी के उत्पाद में अनुगामी शून्य की संख्या की गणना करें

हमें आकार N के धनात्मक पूर्णांकों की एक सरणी Arr[] दी गई है। लक्ष्य सरणी के सभी तत्वों के गुणनफल में मौजूद अनुगामी शून्यों की संख्या की गणना करना है।

हम प्रत्येक संख्या के गुणनखंडों को गिनकर ऐसा करेंगे। हम 2 और 5 को प्रत्येक संख्या के गुणनखंड के रूप में गिनेंगे क्योंकि 2 और 5 का गुणनफल 10 है जो 1 अनुगामी 0 देता है। अंत में जो भी गिनती छोटी होती है वह गुणनफल में अनुगामी शून्य की गिनती देती है। अगर हमारे पास 4 2 और 6 5 हैं तो उत्पाद में 4 अनुगामी शून्य होंगे - 2*2*2*2*5*5*5*5*5*5=250000

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

इनपुट

Arr[] = { 2, 5, 10, 15, 20, 25, 100 }

आउटपुट

Number of trailing zeroes : 6

स्पष्टीकरण

Factors 2 and 5 of each element of Arr[]:
Arr[0] = 2 : 2 twos=1, fives=0
Arr[1] = 5 : 5 twos=1, fives=1
Arr[2] = 10 : 2*5 twos=2, fives=2
Arr[3] = 15 : 3*5 twos=2, fives=3
Arr[4] = 20 : 2*2*5 twos=4, fives=4
Arr[5] = 25 : 5*5 twos=4, fives=6
Arr[6] = 100 : 2*2*5*5 twos=6, fives=8
Count of 2 is less so trailing zeroes will be 6.

इनपुट

Arr[] = { 10,10,10,10,10 }

आउटपुट

Number of trailing zeroes : 5

स्पष्टीकरण

Factors 2 and 5 of each element of Arr[]:
Arr[0] = 10 : 2*5 twos=1, fives=1
Arr[1] = 10 : 2*5 twos=2, fives=2
Arr[2] = 10 : 2*5 twos=3, fives=3
Arr[3] = 10 : 3*5 twos=4, fives=4
Arr[4] = 10 : 2*5 twos=5, fives=5
Count of 2 and 5 is equal so trailing zeroes will be 5.

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

  • हम लंबाई N के धनात्मक पूर्णांकों की एक सरणी लेते हैं..

  • फ़ंक्शन TrailZeros(int arr[],int n) इनपुट के रूप में सरणी और n लेता है और सभी तत्वों के उत्पाद में अनुगामी शून्य की संख्या देता है।

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

  • दो चर दो और पांच को 2 और 5 को गुणनखंड के रूप में लें।

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

  • प्रत्येक तत्व के लिए यदि यह 2 या 5 से विभाज्य है तो दो और पाँच बढ़ाएँ और इसे 2 या 5 से कम करें।

  • लूप के अंत में दो और पांच का मूल्य चेक करें, जो भी छोटा हो।

  • दो में से कम से गिनती शुरू करें।

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

उदाहरण

#include <bits/stdc++.h<
using namespace std;
int trailZeros(int arr[],int n){
   int count = 0;
   int twos = 0;
   int fives = 0;
   for (int i = 0; i < n; i++){
      while(arr[i]%2==0 || arr[i]%5==0){
         if(arr[i]%2==0){
            arr[i]=arr[i]/2;
            twos++;
         }
         if(arr[i]%5==0){
            arr[i]=arr[i]/5;
            fives++;
         }
      }
   }
   count=twos<fives?twos:fives;
   return count;
}
int main(){
   int Arr[]={ 12, 5 , 15, 8, 100, 40 };
   int Length= sizeof(Arr)/sizeof(Arr[0]);
   cout <<endl<< "Number of trailing zeroes : "<<trailZeros(Arr,Length);
   return 0;
}

आउटपुट

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

Number of trailing zeroes : 5

  1. C++ में एक आयत में वर्गों की संख्या गिनें

    =B. लक्ष्य उन वर्गों की संख्या का पता लगाना है जिन्हें LXB आकार का एक आयत समायोजित कर सकता है। ऊपर दिया गया चित्र 3 X 2 आकार का एक आयत दिखाता है। इसमें 2, 2X2 वर्ग और 6,1X1 वर्ग हैं। कुल वर्ग=6+2=8. LXB आकार के प्रत्येक आयत में L*B संख्या 1X1 वर्ग होती है। सबसे बड़े वर्ग BXB आकार के होते ह

  1. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

    यहां हम सेट-बिट्स के आधार पर एक सरणी को सॉर्ट करने के लिए एक दिलचस्प समस्या देखेंगे। जब सरणी में एक तत्व में सेट-बिट्स की संख्या अधिक होती है, तो उसे दूसरे तत्व से पहले रखा जाएगा जिसमें सेट बिट्स की संख्या कम होती है। मान लीजिए कुछ संख्याएं 12, 15, 7 हैं। तो सेट बिट्स मूल रूप से उनके द्विआधारी प्रति

  1. सी ++ में एक उत्पाद सरणी पहेली?

    यहां हम सरणी से संबंधित एक दिलचस्प समस्या देखेंगे। n तत्वों के साथ एक सरणी है। हमें n तत्वों की एक और सरणी बनानी है। लेकिन दूसरी सरणी की i-वें स्थिति i-वें तत्व को छोड़कर पहले सरणी के सभी तत्वों का गुणनफल धारण करेगी। और एक बाधा यह है कि हम इस समस्या में डिवीजन ऑपरेटर का उपयोग नहीं कर सकते हैं। यदि