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

C++ . में फैक्टोरियल ट्रेलिंग जीरो


यहां हम देखेंगे कि किसी भी संख्या के भाज्य के परिणाम के लिए अनुगामी 0s की संख्या की गणना कैसे करें। तो अगर n =5, तो 5! =120. केवल एक अनुगामी 0 है। 20 के लिए! यह 20 के रूप में 4 शून्य होगा! =2432902008176640000।

सबसे आसान तरीका सिर्फ फैक्टोरियल की गणना करना और 0 की गणना करना है। लेकिन यह दृष्टिकोण n के बड़े मान के लिए विफल हो जाता है। तो हम एक और तरीका अपनाएंगे। अनुगामी शून्य होगा यदि अभाज्य गुणनखंड 2 और 5 हैं। यदि हम 2 और 5 को गिनें तो हम परिणाम प्राप्त कर सकते हैं। उसके लिए हम इस नियम का पालन करेंगे।

अनुगामी 0s =भाज्य (n) के अभाज्य गुणनखंडों में 5s की संख्या

इसलिए पिछला 0s =$$\lvert\frac{n}{5}\rvert+\lvert\frac{n}{25}\rvert+\lvert\frac{n}{125}\rvert+...$$

इसे हल करने के लिए, हमें इन चरणों का पालन करना होगा -

  • गणना सेट करें =0
  • i =5, (n/i)> 1 के लिए, i =i * 5 अपडेट करें, करें
    • गिनती =गिनती + (n /i)
  • वापसी की संख्या

उदाहरण (C++)

#include <iostream>
#include <cmath>
#define MAX 20
using namespace std;
int countTrailingZeros(int n) {
   int count = 0;
   for (int i = 5; n / i >= 1; i *= 5)
      count += n / i;
   return count;
}
main() {
   int n = 20;
   cout << "Number of trailing zeros: " << countTrailingZeros(n);
}

इनपुट

Number of trailing zeroes: 20

आउटपुट

Number of trailing zeros: 4

  1. सी/सी++ प्रोग्राम किसी संख्या के भाज्य में अनुगामी शून्यों की गणना करने के लिए?

    यहां हम देखेंगे कि किसी भी संख्या के भाज्य के परिणाम के लिए अनुगामी 0s की संख्या की गणना कैसे करें। तो अगर n =5, तो 5! =120. केवल एक अनुगामी 0 है। 20! के लिए, यह 20 के रूप में 4 शून्य होगा! =2432902008176640000। सबसे आसान तरीका सिर्फ फैक्टोरियल की गणना करना और 0 की गणना करना है। लेकिन यह दृष्टिकोण

  1. आधार B में अनुगामी शून्यों की संख्या ज्ञात कीजिए जो N का प्रतिनिधित्व करते हैं! सी ++ का उपयोग करना

    इस लेख में, हम किसी दी गई संख्या N के अनुगामी शून्य को उसके भाज्य के आधार B निरूपण में खोजने की समस्या को समझेंगे। उदाहरण के लिए Input : N = 7 Base = 2 Output : 4 Explanation : fact(7) = 5040 in base10 and 1001110110000 in base16 having 4 trailing zero. Input : N = 11 Base = 5 Output : 2 Explanatio

  1. 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 bas