在 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++) {
      // skipping the predefined vertices
      if (i == A || i == B) {
         continue;
      }
      else {
         // length between the current vertext to A and B
         sum = abs(i - A) + abs(i - B);
         // checking whether the current sum is less than previous sum
         if (sum < minimum_sum) {
            // updating the minimum sum and position of vertext
            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

结论

如果您在本教程中有任何疑问,请在评论部分中提出。

更新于: 2021年1月27日

91 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告