ในปัญหานี้ เราได้รับจำนวนเต็มสองจำนวน N และ M มีวงกลมและคน N ยืนอยู่บนนั้น M หมายถึงตำแหน่งของบุคคล งานของเราคือการพิมพ์ตำแหน่งของบุคคลที่ตรงข้ามกับ M.
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
ป้อนข้อมูล − N =6, M =3
ผลผลิต − 6
คำอธิบาย −
ในการแก้ปัญหานี้จะมี 2 กรณี กรณีแรกถ้าตำแหน่งมากกว่าครึ่ง (ครึ่งหลัง) ฝ่ายค้านจะเป็นครึ่งแรกและในทางกลับกัน
มาสร้างสูตรทางคณิตศาสตร์กันเถอะ
กรณีที่ 1 − ถ้า m> n/2 ตำแหน่งของฝ่ายตรงข้ามคือ m - (n/2)
กรณีที่ 2 − ถ้า m =
โปรแกรมแสดงภาพประกอบของโซลูชันของเราตัวอย่าง
#include <iostream>
using namespace std;
void printOppositePosition(int n, int m) {
int pos;
if (m > (n / 2))
pos = (m - (n / 2));
else
pos = (m + (n / 2));
cout<<pos;
}
int main() {
int N = 8, M = 4;
cout<<"The position of person opposite to person at position "<<M<<" when "<<N<<" people are standing in a circle is ";
printOppositePosition(N, M);
return 0;
}
ผลลัพธ์
The position of person opposite to person at position 4 when 8 people are standing in a circle is 8