在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

结论