在本教程中,我们将学习如何在规则的N面多边形上找到第三人称的位置。
我们给出了一个规则的N边多边形。并且已经有两个不同点的两个人。我们的任务是找到放置第三人称的第三点,以使前两个人与第三人称之间的距离最小。
让我们看看解决问题的步骤。
初始化N和两个点A和B。
初始化第三人称的位置,并用最小的总和找到位置。
从1迭代到N。
如果当前位置是A或B,则跳过它。
求出当前位置与A,B之间的绝对差之和。
将其与最小和进行比较。
如果当前总和小于最小总和,则更新位置和最小总和。
打印第三人称的位置。
让我们看一下代码。
#include <bits/stdc++.h>
using namespace std;
int findThirdPersonStandingVertex(int N, int A, int B) {
int position = 0;
int minimum_sum = INT_MAX, sum;
for (int i = 1; i <= N; i++) {
// 跳过预定义的顶点
if (i == A || i == B) {
continue;
}
else {
// 当前文字与A和B之间的长度
sum = abs(i - A) + abs(i - B);
// 检查当前总和是否小于先前总和
if (sum < minimum_sum) {
// 更新文字的最小和和位置
minimum_sum = sum;
position = i;
}
}
}
return position;
}
int main() {
int N = 7, A = 5, B = 7;
cout << "Vertex: " << findThirdPersonStandingVertex(N, A, B) << endl;
return 0;
}输出结果如果执行上述程序,则将得到以下结果。
Vertex: 6