एक स्ट्रिंग को देखते हुए, प्रोग्राम को सबसे छोटा पथ प्रदर्शित करना चाहिए जो उस सबसे छोटे पथ का उपयोग करके स्क्रीन पर स्ट्रिंग को प्रिंट करेगा।
स्क्रीन की तरह अक्षरों को प्रारूप में संग्रहीत करेगा
A B C D EF G H I JK L M N OP Q R S TU V W X YZ
उदाहरण
इनपुट:HUPOutput :नीचे ले जाएँ नीचे ले जाएँ नीचे की मंज़िल पर पहुँच जाएँ बाएँ ले जाएँ लेफ्ट ले जाएँ नीचे जाएँ नीचे जाएँ नीचे ले जाएँ डाउनडेस्टिनेशन पहुँच गया मूव अप डेस्टिनेशन पहुँच गया
यहां इस्तेमाल किया जाने वाला तरीका वर्णों को n x n मैट्रिक्स में संग्रहीत करना और निम्नलिखित ऑपरेशन करना है -
यदि पंक्ति अंतर ऋणात्मक है तो ऊपर जाएंयदि पंक्ति अंतर सकारात्मक है तो नीचे जाएंयदि स्तंभ अंतर ऋणात्मक है तो बाएं जाएंयदि स्तंभ अंतर सकारात्मक है तो हम दाएं जाते हैं
एल्गोरिदम
STARTचरण 1 -> फ़ंक्शन को शून्य प्रिंटपथ घोषित करें(char str[]) वैरिएबल int i =0 और cx=0 और cy=0 लूप घोषित करें जबकि str[i] !='\0' वैरिएबल को int n1 =( str[i] - 'A')/5 वेरिएबल को int n2 =(str[i] - 'B' + 1)% 5 लूप के रूप में घोषित करें जबकि cx> n1 प्रिंट मूव अप cx- एंड लूप जबकि cy> n2 प्रिंट लेफ्ट मूव करें Cy- एंड लूप जबकि cxin main() डिक्लेयर char str[] ={"HUP"} कॉल प्रिंटपाथ (str)रोकें
उदाहरण
#includevoid printpath(char str[]){ int i =0; // स्थिति 'ए' से शुरू करें जो स्थिति (0, 0) पर मौजूद है int cx =0, cy =0; जबकि (str [i]! ='\ 0') {// अगले वर्ण के निर्देशांक खोजें int n1 =(str [i] - 'ए')/5; int n2 =(str [i] - 'बी' + 1)% 5; // ऊपर ले जाएँ यदि गंतव्य ऊपर है जबकि (cx> n1) {printf ("ऊपर ले जाएँ \ n"); सीएक्स--; } // यदि गंतव्य बाईं ओर है तो बाईं ओर ले जाएँ जबकि (cy> n2) { printf ("बाएँ ले जाएँ \ n"); साइ--; } // नीचे जाएं यदि गंतव्य नीचे है जबकि (cx आउटपुट
यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
नीचे ले जाएं नीचे ले जाएं नीचे की मंजिल पहुंचें बाएं ले जाएं बाएं ले जाएं नीचे ले जाएं