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

C++ में इंटीजर रिप्लेसमेंट

मान लीजिए कि हमारे पास एक सकारात्मक पूर्णांक n है और हम इन कार्यों को निम्नानुसार कर सकते हैं -

  • अगर n सम है, तो n को n/2 से बदलें।

  • अगर n विषम है, तो आप n को n + 1 या n-1 से बदल सकते हैं।

हमें n के लिए 1 बनने के लिए आवश्यक न्यूनतम प्रतिस्थापनों की संख्या ज्ञात करनी होगी?

तो यदि संख्या 7 है, तो उत्तर 4 होगा, क्योंकि 7 → 8 → 4 → 2 → 1 या 7 → 6 → 3 → 2 → 1

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • रिट:=0, एन:=एक्स

  • जबकि n> 1

    • अगर n सम है, तो c :=n / 2

    • अन्यथा जब n सम हो

      • यदि n 3 है या n/2 सम है, तो n को 1 से घटाएं अन्यथा n को 1 से बढ़ा दें

    • रिट को 1 से बढ़ाएं

  • वापसी सेवानिवृत्त।

उदाहरण (C++)

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
typedef long long int lli;
class Solution {
   public:
   int bitCount(int x){
      int ret = 0;
      while(x){
         ret++;
         x >>= 1;
      }
      return ret;
   }
   int integerReplacement(int x) {
      int ret = 0;
      lli n = x;
      while(n > 1){
         if(n % 2 == 0){
            n >>= 1;
         }
         else if(n & 1){
            if(n == 3 || (((n >> 1) & 1 )== 0)){
               n--;
            } else {
               n++;
            }
         }
         ret++;
      }
      return ret;
   }
};
main(){
   Solution ob;
   cout << (ob.integerReplacement(7));
}

इनपुट

7

आउटपुट

4

  1. सी ++ में अहस्ताक्षरित पूर्णांक के लिए डिवीजन एल्गोरिदम बहाल करना

    एक विभाजन एल्गोरिथ्म का उपयोग करके एक अहस्ताक्षरित पूर्णांक को विभाजित करने पर चर्चा करें। कुछ डिवीजन एल्गोरिदम कागज पर लागू होते हैं, और अन्य डिजिटल सर्किट पर लागू होते हैं। डिवीजन एल्गोरिदम दो प्रकार के होते हैं:स्लो डिवीजन एल्गोरिथम और फास्ट डिवीजन एल्गोरिथम। स्लो डिविजन एल्गोरिथम में रिस्टोरिंग,

  1. एक पूर्णांक के अंकों को ज़ूम करने के लिए C++ प्रोग्राम

    इस प्रोग्राम में हम देखेंगे कि C++ में किसी पूर्णांक के अंकों को कैसे ज़ूम किया जाता है। ज़ूमिंग का अर्थ है कुछ अन्य वर्णों का उपयोग करके संख्याओं को बड़े रूप में प्रिंट करना। तर्क सरल है, लेकिन हमें 0 से 9 तक एक-एक करके बड़ी संख्याएँ बनानी होंगी। उदाहरण कोड #include <bits/stdc++.h> using name

  1. C++ पूर्णांक स्थिरांक क्या हैं?

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