在 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 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.