এই সমস্যায়, আমাদের চারটি মান দেওয়া হয়েছে 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