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

सरणी के गुणनफल में अनुगामी शून्यों की संख्या गिनें C++ में


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

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

उदाहरण से समझते हैं

इनपुट

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

आउटपुट

अनुगामी शून्यों की संख्या: 6

व्याख्या

Arr[] के प्रत्येक तत्व के 2 और 5 गुणनखंड: Arr[0] = 2: 2 दो=1, पांच=0 Arr[1] = 5: 5 दो=1, पांच=1 Arr[2] = 10: 2*5 दो=2, पांच=2 Arr[3] = 15: 3*5 दो=2, पांच=3 Arr[4] = 20: 2*2*5 दो=4, पांच=4 Arr[5] = 25: 5*5 दो=4, पांच=6 Arr[6] = 100: 2*2*5*5 दो=6, पांच=8 2 की संख्या कम है इसलिए अनुगामी शून्य 6 होंगे।

इनपुट

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

आउटपुट

अनुगामी शून्यों की संख्या: 5

व्याख्या

Arr[] के प्रत्येक तत्व के 2 और 5 गुणनखंड: Arr[0] = 10: 2*5 दो=1, पांच=1 Arr[1] = 10: 2*5 दो=2, पांच=2 Arr[2] = 10: 2*5 दो=3, पांच=3 Arr[3] = 10: 2*5 दो=4, पांच=4 Arr[4] = 10: 2*5 दो=5, पांच=5 2 और 5 की संख्या बराबर है इसलिए अनुगामी शून्य 5 होंगे।

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

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

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

  • प्रारंभिक चर count को 0 से आरंभ करें शून्यों की संख्या के लिए।

  • दो चर twos और fives लें 2s और 5s के गुणनखंडों की गिनती के रूप में।

  • फॉर लूप का उपयोग करके सरणी को पार करें।

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

  • फॉर लूप के अंत में twos और fives के मान की जांच करें जो भी छोटा हो।

  • कम वाले के साथ काउंट आरंभ करें।

  • काउंट को परिणाम के रूप में लौटाएं।

उदाहरण

#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<< "अनुगामी शून्यों की संख्या: "<<trailZeros(Arr,Length);    return 0; }

आउटपुट

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

अनुगामी शून्यों की संख्या: 5

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

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर

  1. - C++ में सेट बिट्स की संख्या के अनुसार ऐरे सॉर्ट करें

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

  1. - C++ में प्रोडक्ट ऐरे पजल (अतिरिक्त स्पेस के साथ)

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