21xrx.com
2024-12-23 02:56:16 Monday
登录
文章检索 我的文章 写文章
使用C++计算曼哈顿距离
2023-06-24 05:46:20 深夜i     --     --
C++ 计算 曼哈顿距离

曼哈顿距离(Manhattan distance)是两个点在标准坐标系中的绝对轴距总和,简称曼哈顿距离。对于平面上的两个点,它们之间的曼哈顿距离可以通过将它们的x坐标之差与它们的y坐标之差相加得到。我们可以使用C++来计算曼哈顿距离。

要计算曼哈顿距离,我们需要知道两个点的x和y坐标。我们可以使用C++中的结构体来存储每个点的坐标。下面是一个简单的结构体,它有两个元素:x和y。


struct Point

  int x;

  int y;

;

接下来,我们需要编写一个函数来计算两个点之间的曼哈顿距离。这个函数将采用两个Point结构体作为参数,并返回它们之间的曼哈顿距离。下面的代码演示了如何计算曼哈顿距离:


int manhattan_distance(Point a, Point b) {

  int dx = abs(a.x - b.x);

  int dy = abs(a.y - b.y);

  return dx + dy;

}

这个函数首先计算两个点之间的x和y坐标差。由于曼哈顿距离是绝对差的总和,所以我们需要取绝对值。最后,我们将x和y坐标差相加并返回结果。

下面是一个完整的C++程序,它演示了如何使用Point结构体和manhattan_distance函数来计算两个点之间的曼哈顿距离:


#include <iostream>

#include <cmath>

using namespace std;

struct Point

  int x;

  int y;

;

int manhattan_distance(Point a, Point b) {

  int dx = abs(a.x - b.x);

  int dy = abs(a.y - b.y);

  return dx + dy;

}

int main() {

  Point p1 = 2;

  Point p2 = 6;

  int distance = manhattan_distance(p1, p2);

  cout << "The Manhattan distance between (" << p1.x << ", " << p1.y << ") and (" << p2.x << ", " << p2.y << ") is " << distance << endl;

  return 0;

}

在上面的程序中,我们定义了两个点p1和p2,并将它们传递给manhattan_distance函数。该函数计算并返回两个点之间的曼哈顿距离。最后,我们在控制台上输出了曼哈顿距离的值。

总之,C++是一种强大的编程语言,可用于计算曼哈顿距离。我们可以使用结构体来存储每个点的x和y坐标,并编写一个简单的函数来计算它们之间的曼哈顿距离。这使得我们能够在计算机程序中轻松地解决曼哈顿距离问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复