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