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

N के आधार 16 निरूपण में अनुगामी शून्यों की संख्या ज्ञात कीजिए! सी ++ का उपयोग करना

इस लेख में, हम उदाहरण के लिए इसके भाज्य के आधार 16 निरूपण में दी गई संख्या N के अनुगामी शून्यों को खोजने की समस्या को समझेंगे

Input : N = 7
Output : 1
Explanation : fact(7) = 5040 in base10 and 13B0 in base16 having 1 trailing zero.

Input : N = 11
Output : 2
Explanation : fact(11) = 39916800 in base10 and 2611500 in base16 having 2 trailing zeroes.

आइए सबसे पहले किसी भी दशमलव संख्या को एक आधार से दूसरे आधार में बदलने की प्रक्रिया का पुनरावलोकन करें; आइए (5040)10 को (?)16

. में बदलने का एक उदाहरण लेते हैं

N के आधार 16 निरूपण में अनुगामी शून्यों की संख्या ज्ञात कीजिए! सी ++ का उपयोग करना

यानी, संख्या को 16 से विभाजित करना और शेष को तब तक रखना जब तक संख्या को और विभाजित नहीं किया जा सकता है। परिणाम शेष उल्टे क्रम में होगा।

परिणामस्वरूप, हमारे पास एक अनुगामी शून्य होता है, और यह अनुगामी शून्य हमें तब प्राप्त होता है जब 16 संख्या को शेष 0 से विभाजित करता है।

5040 =161 * 451* 71 का अभाज्य गुणनखंड, जिसका अर्थ है 16, 5040 को 1 बार शेष 0 से विभाजित करता है, अनुगामी शून्य के बराबर। इस तरह, हम अनुगामी शून्यों की संख्या की गणना कर सकते हैं।

समाधान खोजने के लिए दृष्टिकोण

अनुगामी शून्यों की संख्या ज्ञात करने के तरीके के बारे में हमने ऊपर चर्चा की। हम 16 =24 भी जानते हैं, जिसका मतलब है कि एन में उच्चतम शक्ति 2 को चार से विभाजित करने पर 16 की उच्चतम शक्ति के बराबर होगा। इसे लीजेंड्रे का सूत्र भी कहा जाता है।

उपरोक्त दृष्टिकोण के लिए C++ कोड

यहाँ C++ सिंटैक्स दिया गया है जिसे हम दी गई समस्या को हल करने के लिए इनपुट के रूप में उपयोग कर सकते हैं -

उदाहरण

#include <bits/stdc++.h>
using namespace std;

int main () {
   int n = 11;
   long long int count = 0;
   long long int value, power = 2;
   long long int result;

   do{
      value = n / power;
      count += value;
      power *= 2;
   }
   while (value != 0);

   // Count has the highest power of 2
   result = count / 4;
   cout << "Number of trailing zeroes in base 16 representation of N : " << result;
}

आउटपुट

Number of trailing zeroes in base 16 representation of N: 2

उपरोक्त कोड की व्याख्या

  • हम दो के साथ पावर इनिशियलाइज़ कर रहे हैं क्योंकि हमें उच्चतम पावर 2 की गणना करने की आवश्यकता है।
  • लेजेंडर के फॉर्मूले को थोड़ी देर के लूप में लागू करना जहां हम n को घात से विभाजित करते हैं, जो शुरू में दो है, और 2 के साथ मान और शक्ति के साथ बढ़ती हुई गिनती है।
  • 2 की उच्चतम शक्ति को चार से विभाजित करने के बाद जो कि गणना चर में संग्रहीत है।
  • आखिरकार हम परिणाम प्रिंट कर रहे हैं।

निष्कर्ष

इस लेख में, हम फैक्टोरियल एन के बेस 16 प्रतिनिधित्व में अनुगामी शून्यों की संख्या खोजने की समस्या को हल करते हैं, जिसे हम लीजेंड्रे के सूत्र का उपयोग करके हल करते हैं। हम उसी समस्या को हल करने के लिए C++ कोड भी लिखते हैं। आप इस कोड को किसी अन्य भाषा जैसे जावा, सी, पायथन, आदि में लिख सकते हैं। हमें उम्मीद है कि आपको यह लेख मददगार लगा होगा।


  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ . का उपयोग करके स्टॉपिंग स्टेशनों की संख्या ज्ञात कीजिए

    बिंदु X और Y के बीच मध्यवर्ती ट्रेन स्टेशनों की संख्या n है। गिनें कि अलग-अलग तरीकों से ट्रेनों को s स्टेशनों पर रुकने के लिए व्यवस्थित किया जा सकता है जैसे कि कोई भी दो स्टेशन एक दूसरे के बगल में नहीं हैं। तो इस लेख में, हम स्टॉपिंग स्टेशनों की संख्या का पता लगाने के लिए हर संभव तरीके की व्याख्या क

  1. C++ का उपयोग करके सेट पर रिफ्लेक्सिव रिलेशंस की संख्या ज्ञात करें

    इस लेख में, हम एक सेट पर रिफ्लेक्सिव संबंधों की संख्या को खोजने के तरीकों की व्याख्या करेंगे। इस समस्या में, हमें संख्या n दी गई है, और n प्राकृत संख्याओं के समुच्चय पर, हमें प्रतिवर्ती संबंधों की संख्या निर्धारित करनी होगी। चिंतनशील संबंध − समुच्चय A में एक संबंध प्रतिवर्ती कहलाता है यदि (a, a) R