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

पीछे के शून्यों की संख्या (1^1)*(2^2)*(3^3)*(4^4)*.. C++ में गिनें

इनपुट के रूप में एक पूर्णांक संख्या दी गई है। लक्ष्य 11 X 22 X 33 X…X num num उत्पाद में अनुगामी शून्यों की संख्या ज्ञात करना है ।

उदाहरण के लिए

इनपुट

num=5

आउटपुट

Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5

स्पष्टीकरण

The number of 2s and 5s in the product will be:
11 * 22* 33* 44* 55=11 * 22* 33* (22)4* 55. So total 10 2s and 5 5s, minimum is 5 so trailing zeroes will be 5.

इनपुट

num=10

आउटपुट

Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5

स्पष्टीकरण

The number of 2s and 5s in the product will be:
11 *22*33*44*55*66 *77*88*99*1010 = 11 *22*33*44*55*66 *77*88*99*(2*5)10. So total 20 2s and 15 5s, minimum is 15 so trailing zeroes will be 15.

नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -

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

  • इनपुट के रूप में एक पूर्णांक संख्या लें।

  • फ़ंक्शन count_trailing(int num) संख्या लेता है और पीछे वाले शून्यों की संख्या की संख्या देता है (1^1)*(2^2)*(3^3)*(4^4)*.....

  • प्रारंभिक गणना 0 के रूप में लें।

  • 2s और 5s की गणना के लिए चर temp_2 =0, temp_5 =0 लें।

  • लूप के लिए i=1 से i<=num.

    . का उपयोग करके ट्रैवर्स करें
  • मैं के रूप में अस्थायी लो।

  • जबकि अस्थायी 2 से विभाज्य है, फिर इसे आधा कर दें और 2s की संख्या के रूप में temp_2 को गिनने के लिए i जोड़ें।

  • जबकि अस्थायी 5 से विभाज्य है, फिर इसे 5 से विभाजित करें और 5 की संख्या के रूप में temp_5 को गिनने के लिए i जोड़ें।

  • काउंट =मिनट (temp_2, temp_5) का उपयोग करके कम से कम दो काउंट के रूप में काउंट लें।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int count_trailing(int num){
   int count = 0;
   int temp_2 = 0;
   int temp_5 = 0;
   for (int i = 1; i <= num; i++){
      int temp = i;
      while(temp % 2 == 0 && temp > 0){
         temp = temp / 2;
         temp_2 = temp_2 + i;
      }
      while (temp % 5 == 0 && temp > 0){
         temp = temp / 5;
         temp_5 = temp_5+ i;
      }
   }
   count = min(temp_2, temp_5);
   return count;
}
int main(){
   int num = 5;
   cout<<"Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: "<<count_trailing(num);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of number of trailing zeros in (1^1)*(2^2)*(3^3)*(4^4)*.. are: 5

  1. C++ में एक आयत में वर्गों की संख्या गिनें

    =B. लक्ष्य उन वर्गों की संख्या का पता लगाना है जिन्हें LXB आकार का एक आयत समायोजित कर सकता है। ऊपर दिया गया चित्र 3 X 2 आकार का एक आयत दिखाता है। इसमें 2, 2X2 वर्ग और 6,1X1 वर्ग हैं। कुल वर्ग=6+2=8. LXB आकार के प्रत्येक आयत में L*B संख्या 1X1 वर्ग होती है। सबसे बड़े वर्ग BXB आकार के होते ह

  1. सी ++ में एक फैक्टोरियल में अंकों की गणना करें

    हमें एक पूर्णांक मान दिया गया है और कार्य पहले किसी संख्या के भाज्य की गणना करना है और फिर परिणाम में अंकों की कुल संख्या की गणना करना है। फैक्टोरियल नंबर क्या है किसी संख्या के भाज्य की गणना अंकों के मान को 1 से घटाते हुए अंकों को गुणा करके की जाती है। इसे प्रतीक ! अर्थात 0!, 1!, 2!, 3!, 5!,... द्

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

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