दिया गया कार्य N सेगमेंट का उपयोग करके किसी भी संख्या के सेवन सेगमेंट डिस्प्ले पर प्रदर्शित की जा सकने वाली अधिकतम संख्या ढूंढना है।
उदाहरण से समझते हैं
इनपुट - N=5
आउटपुट - 71
व्याख्या - सबसे बड़ी संख्या सेवन सेगमेंट डिस्प्ले पर इस प्रकार प्रदर्शित होगी।
इनपुट - N=6
आउटपुट - 111
प्रयुक्त दृष्टिकोण
निम्नलिखित स्थिति को 3 केस में विभाजित किया जा सकता है:
केस 1 - यदि N 0 या 1 है, तो कोई संख्या प्रदर्शित करना संभव नहीं है।
केस 2 - यदि N विषम है। तब जिन संख्याओं को विषम संख्या में सेगमेंट से प्रदर्शित किया जा सकता है वे हैं 2, 3, 5, 7 और 8, जिनमें से 7 सबसे कम सेगमेंट लेता है, यानी 3। इसलिए इस केस में 7 सबसे महत्वपूर्ण अंक है।
केस 3 - यदि N सम है। तब जिन संख्याओं को सम संख्या में सेगमेंट से प्रदर्शित किया जा सकता है वे हैं 0, 1, 4, 6, 9 और 8, जिनमें से 1 सबसे कम सेगमेंट लेता है, यानी 2। इसलिए इस केस में 1 सबसे महत्वपूर्ण अंक है।
MaxNumber() फंक्शन में पहले बेस कंडीशन चेक करें:
if (N == 1 || N == 0)
फिर एक और if स्टेटमेंट का उपयोग करके चेक करें कि N सम है या नहीं। यदि हां तो "1" प्रिंट करें क्योंकि यह सम केस में सबसे महत्वपूर्ण अंक है और MaxNumber(N - 2) कॉल करें क्योंकि यहां 2 सेगमेंट उपयोग हो रहे हैं।
एक और if स्टेटमेंट का उपयोग करके चेक करें कि N विषम है या नहीं। यदि हां तो "7" प्रिंट करें क्योंकि यह विषम केस में सबसे महत्वपूर्ण अंक है और MaxNumber(N - 3) कॉल करें क्योंकि यहां 3 सेगमेंट उपयोग हो रहे हैं।
C++ प्रोग्राम उदाहरण
#include <iostream>
using namespace std;
void MaxNumber(int N) {
// बेस केस चेक करने की कंडीशन
if (N == 1 || N == 0) {
return;
}
// यदि संख्या सम है
if (N % 2 == 0) {
cout << "1";
MaxNumber(N - 2);
}
// यदि संख्या विषम है
else if (N % 2 == 1) {
cout << "7";
MaxNumber(N - 3);
}
}
int main() {
int N;
N = 5;
MaxNumber(N);
return 0;
}आउटपुट
71