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

C++ में N के विषम और सम रोटेशन की गिनती


हमें एक संख्या N दी गई है। लक्ष्य N के उन रोटेशन की संख्या गिनना है जो विषम संख्या बनाते हैं और जो सम संख्या बनाते हैं। यदि संख्या N 123 है तो इसके रोटेशन होंगे 123, 321, 132। विषम रोटेशन 123 और 321 (2) हैं और सम रोटेशन 132 (1) है।

उदाहरण सहित समझ

इनपुट - N=54762

आउटपुट

N के विषम रोटेशन की संख्या: 2

N के सम रोटेशन की संख्या: 3

व्याख्या - रोटेशन हैं:

54762, 25476, 62547, 76254, 47625।

सम रोटेशन 3 हैं: 54762, 25476, 76254

विषम रोटेशन 2 हैं: 62547, 47625

इनपुट - N=3571

आउटपुट

N के विषम रोटेशन की संख्या: 4

N के सम रोटेशन की संख्या: 0

व्याख्या - रोटेशन हैं:

3571, 1357, 7135, 5713

सम रोटेशन 0 हैं

विषम रोटेशन 4 हैं: 3571, 1357, 7135, 5713

प्रोग्राम में उपयोग किया गया दृष्टिकोण

संख्या विषम या सम है यह इकाई अंक के विषम/सम होने से जांचा जा सकता है। किसी संख्या के रोटेशन में, सभी अंक इकाई अंक के रूप में आएंगे। इसलिए हम संख्या को 10 से विभाजित करेंगे और जांचेंगे कि इकाई अंक सम/विषम है या नहीं और संबंधित काउंट बढ़ाएँगे।

  • संख्या को पूर्णांक N के रूप में लें।
  • फंक्शन Even_Odd_rotation(int N) संख्या N लेता है और विषम और सम रोटेशन की संख्या प्रिंट करता है।
  • प्रारंभिक काउंट Even_rotation और Odd_rotation के रूप में लें।
  • डू-व्हाइल लूप का उपयोग करके value = N % 10 लें इकाई अंक के लिए।
  • यदि value % 2 == 0, तो यह सम है, Even_rotation बढ़ाएँ, अन्यथा Odd_rotation बढ़ाएँ।
  • अगले इकाई अंक के लिए N को 10 से कम करें।
  • Even_rotation प्रिंट करें N के सम रोटेशन के रूप में।
  • Odd_rotation प्रिंट करें N के विषम रोटेशन के रूप में।

उदाहरण

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

void Even_Odd_rotation(int N) {
    int Even_rotation = 0;
    int Odd_rotation = 0;
    do {
        int value = N % 10;
        if (value % 2 == 1) {
            Odd_rotation++;
        } else {
            Even_rotation++;
        }
        N = N / 10;
    } while (N != 0);
    cout << "Count of rotations of N which are Odd are: " << Odd_rotation;
    cout << "\nCount of rotations of N which are Even are: " << Even_rotation;
}

int main() {
    int N = 341;
    Even_Odd_rotation(N);
    return 0;
}

आउटपुट

Count of rotations of N which are Odd are: 2
Count of rotations of N which are Even are: 1
  1. - C++ में 8 से विभाज्य रोटेशन की गिनती

    हमें एक बड़ी संख्या दी गई है। लक्ष्य num के उन रोटेशन की संख्या गिनना है जो 8 से विभाज्य हैं। चूंकि रोटेशन को बार-बार नहीं किया जा सकता। हम 8 से विभाज्यता के गुणधर्म का उपयोग करेंगे। यदि अंतिम तीन अंक 8 से विभाज्य हैं तो संख्या 8 से विभाज्य है। यदि संख्या 1800 है तो इसके रोटेशन होंगे 1800, 0180, 00

  1. - C++ में 4 से विभाज्य रोटेशन की गिनती

    हमें एक बड़ी संख्या दी गई है। लक्ष्य num के उन रोटेशन की संख्या गिनना है जो 4 से विभाज्य हैं। चूंकि रोटेशन को बार-बार नहीं किया जा सकता। हम 4 से विभाज्यता के गुणधर्म का उपयोग करेंगे। यदि अंतिम दो अंक 4 से विभाज्य हैं तो संख्या 4 से विभाज्य है। यदि संख्या 1234 है तो इसके रोटेशन होंगे 1234, 4123, 341

  1. C++ में सॉर्टेड और रोटेटेड लिंक्ड लिस्ट में रोटेशन की गिनती C++ में सॉर्टेड और रोटेटेड लिंक्ड लिस्ट में रोटेशन की गिनती

    हमें एक लिंक्ड लिस्ट दी गई है। लिस्ट पहले सॉर्ट की गई है और फिर K नोड्स द्वारा रोटेट की गई है। लक्ष्य K का मान ज्ञात करना है। यदि हमें नीचे दी गई लिंक्ड लिस्ट इनपुट के रूप में दी गई है जो K नोड्स द्वारा रोटेटेड है: तो मूल लिस्ट रही होगी: और हम यहाँ देख सकते हैं K=2 है। इनपुट लिंक्ड लिस्ट मूल सॉर्