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

C++ में जांचने का कुशल तरीका कि संख्या 3 का गुणक है या नहीं


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

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

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

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

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

इनपुट

n = 24

आउटपुट

even

व्याख्या

बाइनरी प्रतिनिधित्व = 11000
Evensetbits = 1, oddsetbits = 1. अंतर = 0, यह विभाज्य है।

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

उदाहरण

#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 से विभाज्य हो। तो मामला सरल है। यदि अंतिम अंक 0

  1. - C++ में जांचें कि N पेंटागोनल नंबर है या नहीं

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

  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 = 4