हमें एक संख्या 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