Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

กำหนดตำแหน่งบุคคลที่สามบนรูปหลายเหลี่ยมด้าน N ปกติใน C++ Program


ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีค้นหาตำแหน่งบุคคลที่สามบนรูปหลายเหลี่ยมด้าน 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น