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

C++ में दिए गए ऑपरेशन द्वारा संख्याओं की संख्या जिसे 2 का घात बनाया जा सकता है


हमें धनात्मक पूर्णांकों की एक सरणी दी गई है। लक्ष्य उन संख्याओं की संख्या ज्ञात करना है जिन्हें अधिकतम एक बार जोड़कर दो का घात बनाया जा सकता है।

हम log2(i) का उपयोग करके जांच करेंगे कि संख्या दो की शक्ति है या इसमें 1 जोड़कर दो की शक्ति बन सकती है। यदि हाँ, तो वेतन वृद्धि की गणना करें।

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

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

आउटपुट − संख्या की संख्या जो 2:3 की घात बन सकती है

स्पष्टीकरण − 1+1=2 → 21 , 3+1=4 → 22 , 2=21 अन्य बन जाएंगे 5+1=6, 6+1=7

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

आउटपुट − संख्या की संख्या जो 2:4 की घात बन सकती है

स्पष्टीकरण − सभी 4 संख्याएं पहले से ही 2 की शक्ति हैं।

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

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

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

  • प्रारंभिक गणना 0 के रूप में लें।

  • ट्रैवर्स सरणी i=0 से i . तक

  • प्रत्येक तत्व के लिए जाँच करें कि क्या फ़्लोर(log2(arr[i]))==ceil((log2(arr[i])) या फ़्लोर(log2(arr[i]+1))==ceil((log2(arr[ i]+1)) , अगर दोनों मामलों में सही वेतन वृद्धि की गणना की जाती है।

  • अंतिम परिणाम के रूप में वापसी की गणना।

उदाहरण

#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int powofTwo(int arr[],int n){
   int count=0;
   for(int i=0;i<n;i++){
      if( floor(log2(arr[i])) == ceil(log2(arr[i])) )
         { count++; }
      else{
         ++arr[i];
         if( floor(log2(arr[i])) == ceil(log2(arr[i])) )
            { count++; }
      }
   }
   return count;
}
int main(){
   int Arr[]={ 5,6,9,3,1 };
   int len=sizeof(Arr)/sizeof(Arr[0]);
   cout<<endl<<"Count of numbers with power of 2 possible: "<<powofTwo(Arr,len);
   return 0;
}

आउटपुट

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

Count of numbers with power of 2 possible: 2

  1. दिए गए बाइनरी ऐरे के सभी उपसर्गों की गणना करें जो C++ में x से विभाज्य हैं

    इस ट्यूटोरियल में, हम बाइनरी ऐरे के उपसर्गों की संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे जो x से विभाज्य हैं। इसके लिए हमें बाइनरी ऐरे और एक मान x प्रदान किया जाएगा। हमारा कार्य उन तत्वों की संख्या ज्ञात करना है जिनके उपसर्ग दिए गए मान x से विभाज्य हैं। उदाहरण #include <bits/stdc++.

  1. सभी पैलिंड्रोम की गणना करें जो C++ में एक पैलिंड्रोम का वर्ग है

    इस ट्यूटोरियल में, हम पैलिंड्रोम की संख्या ज्ञात करने के लिए एक प्रोग्राम पर चर्चा करेंगे जो एक पैलिंड्रोम के वर्ग हैं। इसके लिए हमें दो मान L और R प्रदान किए जाएंगे। हमारा कार्य दी गई श्रेणी में सुपर पैलिंड्रोम की संख्या ज्ञात करना है। एक सुपर पैलिंड्रोम वह होता है जिसमें संख्या और उसका वर्ग दोनों

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

    समस्या कथन पूर्णांकों की एक सरणी, एक संख्या और एक अधिकतम मान को देखते हुए, कार्य उस अधिकतम मान की गणना करना है जो सरणी तत्वों से प्राप्त किया जा सकता है। शुरुआत से ट्रैवर्सिंग एरे पर प्रत्येक मान को पिछले इंडेक्स से प्राप्त परिणाम से जोड़ा या घटाया जा सकता है जैसे कि किसी भी बिंदु पर परिणाम 0 से कम