在C ++程序中确定第三人称在规则N边多边形上的位置
在本教程中,我们将学习如何在规则的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