इस समस्या में हमें एक संख्या N दी गई है। हमारा कार्य 4 और 7 से बनी संख्याओं में दी गई संख्या की स्थिति खोजना है। केवल 4 और 7 से बनी श्रृंखला 4, 7, 44, 47, 74, 77, 444... है।
आइए एक उदाहरण से इस समस्या को समझते हैं,
इनपुट
N = 5
आउटपुट
74
व्याख्या
5 पदों तक श्रृंखला 4, 7, 44, 47, 74... है।
समाधान दृष्टिकोण
इस समस्या का एक सरल समाधान श्रृंखला में पैटर्न ढूंढने पर आधारित है।
यहां, हर सम स्थिति में अंत में 7 होता है।
और हर विषम स्थिति में अंत में 4 होता है।
तो, हम अंक दर अंक जाकर और वर्तमान अंक के आधार पर स्थिति ढूंढकर श्रृंखला खोज सकते हैं।
यदि वर्तमान अंक 4 है, तो स्थिति को स्थिति = (स्थिति*2) + 1 के रूप में अपडेट किया जाएगा।
यदि वर्तमान अंक 7 है, तो स्थिति को स्थिति = (स्थिति*2) + 2 के रूप में अपडेट किया जाएगा।
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream> using namespace std; int findNumPosition(string num){ int i = 0, position = 0; while (num[i] != '\0') { position *= 2; if(num[i] == '4') position += 1; else position += 2; i++; } return position; } int main() { string num = "74774"; cout<<"The position of the number in the series is "<<findNumPosition(num); return 0; }आउटपुट
The position of the number in the series is 53