इस समस्या में, हमें चार मान x1, y1, x2, y2 दिए गए हैं जो दो बिंदुओं (x1, y1) और (x2, y2) को दर्शाते हैं। हमारा काम मैट्रिक्स में सिंगल मूवमेंट ढूंढना है। हमें उस दिशा को खोजने की आवश्यकता है जिसके उपयोग से हम एक बिंदु (x1, y1) से (x2, y2) तक जा सकते हैं। एकल होने के लिए आवश्यक दिशा के अनुसार कितनी भी चालें हो सकती हैं और हमें दिशा को "बाएं", "दाएं", "ऊपर", "नीचे" के रूप में वापस करने की आवश्यकता है। अन्यथा वापसी -1, "संभव नहीं" को दर्शाता है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
x1 = 2, y1 = 1, x2 = 5, y1 = 1
आउटपुट
Right
समाधान दृष्टिकोण
समस्या का एक सरल समाधान इस तथ्य का उपयोग कर रहा है कि स्रोत से गंतव्य तक पहुंचने के लिए, दोनों में से कोई एक निर्देशांक x1:x2 या y1:y2 समान होना चाहिए। मानों के लिए, ये मामले हैं -
Case 1: x1 = x2 & y1 > y2 -> Direction : Left Case 1: x1 = x2 & y2 > y1 -> Direction : Right Case 1: y1 = y2 & x1 > x2 -> Direction : Up Case 1: y1 = y2 & x2 > x1 -> Direction : Down
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; void findSingleMovement(int x1, int y1, int x2, int y2) { if (x1 == x2 && y1 < y2) cout<<"Right"; else if (x1 == x2 && y1 > y2) cout<<"Left"; else if (y1 == y2 && x1 < x2) cout<<"Down"; else if (y1 == y2 && x1 > x2) cout<<"Up"; else cout<<"Not Possible"; } int main() { int x1, x2, y1, y2; x1 = 2; y1 = 1; x2 = 5; y2 = 1; cout<<"The direction of movement is "; findSingleMovement(x1, y1, x2, y2); return 0; }
आउटपुट
The direction of movement is Down