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

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

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

जैसा कि हम जानते हैं, यदि किसी संख्या N को आधार b में दर्शाया जाता है, तो b, m+1 बिट अनुक्रम bm bm-1… b0 में परिवर्तित हो जाता है। इसका मतलब है bm बी एम + ख<उप>एम-1 * बी m-1 + … + ख<उप>0 *बी 0 =N. सबसे बड़ी संख्या 2*b m . होगी – 1. N, b m . में स्थित है ≤ एन ≤ 2*b m - 1. अब एक और ध्यान देने वाली बात यह है कि m $\lfloor\log_2 m\;\rfloor$ से अधिक नहीं हो सकता है क्योंकि जब हम आधार -2 में किसी भी संख्या का प्रतिनिधित्व करते हैं तो यह केवल 0s और 1s के अनुक्रम में परिवर्तित हो जाता है, इसलिए इस अनुक्रम की लंबाई हमेशा किसी भी अन्य आधार प्रतिनिधित्व से अधिक होगी और इसकी लंबाई बराबर होगी$\lfloor\log_2 m\;\rfloor+1$ । तो किसी दिए गए नंबर की जांच करने के लिए N आधार b में 1 से शुरू होता है या नहीं, हम m =1 से m =$\lfloor\log_2 m\;\rfloor$ तक जाएंगे और जांचेंगे कि क्या m के किसी भी मान के लिए, N निहित है रेंज बी m ≤ एन ≤ 2*b m - 1 या नहीं और तदनुसार सही या गलत लौटाएं।

उदाहरण

#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) //if number is in the given range
   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 से विभाज्य होगी। तो मामला सरल है। यदि अंति

  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 =