इस समस्या में हमें एक संख्या N दी गई है। हमारा कार्य 4 और 7 से बनी संख्याओं में से दी गई संख्या का स्थान ज्ञात करना है। केवल 4 और 7 से मिलकर बनने वाली श्रृंखला 4, 7, 44, 47, 74, 77 है। 444….
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
N = 5
आउटपुट
74
स्पष्टीकरण
Series upto 5 terms is 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