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

C++ में जांचें कि संख्या N, b-बेस में 1 से शुरू होती है या नहीं


हमारे पास एक संख्या N और एक बेस b है। इस प्रोग्राम में हमें जांचना है कि क्या संख्या बेस b में 1 से शुरू होती है या नहीं। मान लीजिए संख्या 6 दी गई है। बाइनरी में यह 110 है, तो यह 1 से शुरू होती है, बेस 4 में भी यह 12₄ होगी। यहां भी यह 1 से शुरू होती है।

जैसा कि हम जानते हैं, यदि संख्या N को बेस b में दर्शाया जाता है, तो b, m+1 बिट अनुक्रम bm bm-1 ... b0 में परिवर्तित हो जाता है। इसका तात्पर्य है b_m * b^m + b_{m-1} * b^{m-1} + ... + b_0 * b^0 = N। सबसे बड़ी संख्या 2*b^m - 1 होगी। N, b^m ≤ N ≤ 2*b^m - 1 की सीमा में आता है। एक और बात ध्यान देने योग्य है कि m, ⌊log₂ m⌋ से अधिक नहीं हो सकता क्योंकि जब हम किसी संख्या को बेस-2 में दर्शाते हैं तो यह केवल 0 और 1 के अनुक्रम में परिवर्तित हो जाती है, इसलिए इस अनुक्रम की लंबाई हमेशा किसी अन्य बेस प्रतिनिधित्व से अधिक होगी और इसकी लंबाई ⌊log₂ m⌋+1 के बराबर होगी। तो दी गई संख्या N बेस b में 1 से शुरू होती है या नहीं जांचने के लिए हम m = 1 से m = ⌊log₂ m⌋ तक पार करेंगे और जांचेंगे कि क्या m के किसी मान के लिए, N, b^m ≤ N ≤ 2*b^m - 1 की सीमा में आता है या नहीं और तदनुसार True या False लौटाएंगे।

उदाहरण

#include <iostream>
#include <cmath>
using namespace std;

bool isStartWithOne(int number, int base) {
    int m = log2(number);
    for (int i = 1; i <= m; i++) {
        if (number >= pow(base, i) && number <= 2 * pow(base, i) - 1) // यदि संख्या दी गई सीमा में है
            return true;
    }
    return false;
}

int main() {
    int num = 19, base = 16;
    if(isStartWithOne(num, base)) {
        cout << "Can be represented";
    } else {
        cout << "Can not be represented";
    }
}

आउटपुट

Can be represented

  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