ในปัญหานี้ เราได้รับจำนวนเต็มสองจำนวน 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