在 C++ 中查找矩阵中的单个运动

在这个问题中,我们给出了四个值 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 : LeftCase 1: x1 = x2 & y2 > y1 -> Direction : RightCase 1: y1 = y2 & x1 > x2 -> Direction : UpCase 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<<"运动方向是 ";

   findSingleMovement(x1, y1, x2, y2);

   return 0;

}

输出结果
运动方向是 Down

以上是 在 C++ 中查找矩阵中的单个运动 的全部内容, 来源链接: utcz.com/z/311410.html

回到顶部