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

C++ में (1^1)*(2^2)*(3^3)*(4^4)*... में अनुगामी शून्यों की गिनती


समस्या विवरण

एक पूर्णांक num इनपुट के रूप में दिया गया है। लक्ष्य गुणनफल 1^1 × 2^2 × 3^3 × ... × num^num में अनुगामी शून्यों की संख्या ज्ञात करना है।

उदाहरण

इनपुट

num=5

आउटपुट

अनुगामी शून्यों की संख्या: 5

व्याख्या

गुणनफल में 2 और 5 की संख्या: 1^1 * 2^2 * 3^3 * 4^4 * 5^5 = 1^1 * 2^2 * 3^3 * (2^2)^4 * 5^5। तो कुल 10 दो और 5 पांच, न्यूनतम 5 है इसलिए अनुगामी शून्य 5 होंगे।

इनपुट

num=10

आउटपुट

अनुगामी शून्यों की संख्या: 15

व्याख्या

गुणनफल में 2 और 5 की संख्या: 1^1 * 2^2 * 3^3 * 4^4 * 5^5 * 6^6 * 7^7 * 8^8 * 9^9 * 10^10 = 1^1 * 2^2 * 3^3 * 4^4 * 5^5 * 6^6 * 7^7 * 8^8 * 9^9 * (2*5)^10। तो कुल 20 दो और 15 पांच, न्यूनतम 15 है इसलिए अनुगामी शून्य 15 होंगे।

दृष्टिकोण

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

एल्गोरिदम चरण

  • एक पूर्णांक num इनपुट के रूप में लें।
  • फंक्शन count_trailing(int num) num लेता है और अनुगामी शून्यों की संख्या लौटाता है।
  • प्रारंभिक गिनती 0 लें।
  • चर temp_2 = 0, temp_5 = 0 2 और 5 की गिनती के लिए लें।
  • for लूप का उपयोग करके i=1 से i<=num तक पार करें।
  • temp को i के रूप में लें।
  • जब तक temp 2 से विभाज्य है, इसे आधा करें और 2 की संख्या के रूप में i को temp_2 में जोड़ें।
  • जब तक temp 5 से विभाज्य है, इसे 5 से विभाजित करें और 5 की संख्या के रूप में i को temp_5 में जोड़ें।
  • दोनों गिनती का न्यूनतम लेकर गिनती लें: count = min(temp_2, temp_5)।
  • परिणाम के रूप में गिनती लौटाएं।

C++ कोड उदाहरण

#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_trailing(num);
    return 0;
}

आउटपुट

अनुगामी शून्यों की संख्या: 5
  1. C++ में आयत में वर्गों की संख्या गिनना C++ में आयत में वर्गों की संख्या गिनना

    =B। लक्ष्य LxB आकार के आयत में समायोजित किए जा सकने वाले वर्गों की संख्या ढूंढना है। उपरोक्त आकृति 3x2 आकार के एक आयत को दर्शाती है। इसमें 2, 2x2 वर्ग और 6, 1x1 वर्ग हैं। कुल वर्ग = 6+2=8। LxB आकार के हर आयत में L*B संख्या के 1x1 वर्ग होते हैं। सबसे बड़े वर्ग BxB आकार के होते हैं। L=B=1 के लिए, वर

  1. - C++ में फैक्टोरियल में अंकों की गिनती करें

    हमें एक पूर्णांक मान दिया गया है और कार्य पहले एक संख्या का फैक्टोरियल निकालना है और फिर परिणाम में अंकों की कुल संख्या की गणना करना है। फैक्टोरियल संख्या क्या है एक संख्या का फैक्टोरियल एक संख्या में अंकों को गुणा करके घटते क्रम में 1 से घटाकर गणना की जाती है। इसे प्रतीक ! द्वारा दर्शाया जाता है

  1. - C++ में फैक्टोरियल के अनुगामी शून्य

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