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

C++ में कोई संख्या 3 का गुणज है या नहीं, यह जांचने के लिए एक कुशल विधि लिखें

यहां, हमें एक प्रोग्राम लिखने की जरूरत है जो यह जांचने के लिए प्रयोग किया जाता है कि दी गई संख्या 3 का गुणज है या नहीं।

एक सामान्य समाधान एक तुच्छ समाधान है, जिसमें संख्या के सभी अंकों को जोड़ा जाता है और यदि योग तीन का गुणज है तो संख्या 3 से विभाज्य है अन्यथा नहीं। लेकिन यह समाधान सबसे कुशल नहीं है।

एक कुशल समाधान संख्या के द्विआधारी प्रतिनिधित्व में बिट काउंट का उपयोग करना होगा। यदि विषम स्थिति में सेट बिट्स की संख्या और सम स्थिति पर सेट बिट्स की संख्या के बीच का अंतर 3 का गुणज है तो संख्या 3 का गुणज है।

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

कार्यान्वयन को समझने के लिए एक उदाहरण लेते हैं,

इनपुट

n = 24

आउटपुट

even

स्पष्टीकरण

binary representation = 11000
Evensetbits = 1 , oddsetbits = 1.
Difference = 0, it is divisible.

हमारे समाधान के कार्यान्वयन को दिखाने के लिए कार्यक्रम,

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int isDivisibleBy3(int n) {
   int oddBitCount = 0;
   int evenBitCount = 0;
   if (n < 0)
      n = -n;
   if (n == 0)
      return 1;
   if (n == 1)
      return 0;
   while (n) {
      if (n & 1)
         oddBitCount++;
      if (n & 2)
         evenBitCount++;
      n = n >> 2;
   }
   return isDivisibleBy3(oddBitCount - evenBitCount);
}
int main() {
   int n = 1241;
   cout<<"The number "<<n;
   if (isDivisibleBy3(n))
      cout<<" is a multiple of 3";
   else
      cout<<" is not a multiple of 3";
   return 0;
}

आउटपुट

The number 1241 is not a multiple of 3

  1. जाँच करें कि C++ में कोई बड़ी संख्या 20 से विभाज्य है या नहीं

    यहां हम देखेंगे कि किसी संख्या को 20 से विभाज्य कैसे किया जाता है या नहीं। इस मामले में संख्या बहुत बड़ी है। इसलिए हम संख्या को स्ट्रिंग के रूप में रखते हैं। एक संख्या 20 से विभाज्य होगी, जब वह 10 से विभाज्य होगी, और 10 को विभाजित करने के बाद, शेष संख्या 2 से विभाज्य होगी। तो मामला सरल है। यदि अंति

  1. C++ में N एक पंचकोणीय संख्या है या नहीं यह जांचने के लिए प्रोग्राम

    एक संख्या N के साथ दिया गया कार्य यह जाँचना है कि संख्या एक पंचकोणीय संख्या है या नहीं। एक पंचकोण बनाने के लिए व्यवस्थित की जा सकने वाली संख्याएँ एक पंचकोणीय संख्या होती हैं क्योंकि इन संख्याओं का उपयोग पंचकोण बनाने के लिए बिंदुओं के रूप में किया जा सकता है। उदाहरण के लिए, कुछ पंचकोणीय संख्याएं हैं

  1. आर्मस्ट्रांग नंबर की जांच करने के लिए C++ प्रोग्राम

    आर्मस्ट्रांग संख्या वह संख्या होती है, जहां अंकों की कुल संख्या के घात तक उठाए गए अंकों का योग संख्या के बराबर होता है। आर्मस्ट्रांग नंबरों के कुछ उदाहरण इस प्रकार हैं। 3 = 3^1 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153 371 = 3^3 + 7^3 + 1^3 = 27 + 343 + 1 = 371 407 = 4^3 + 0^3 + 7^3 = 64 +0 + 343 =