Trong bài toán này, ta cho hai số nguyên N và M. có một hình tròn và N người đang đứng trên đó. M biểu thị vị trí của một người. Nhiệm vụ của chúng ta là in vị trí của người đối diện với M.
Hãy lấy một ví dụ để hiểu vấn đề,
Đầu vào - N =6, M =3
Đầu ra - 6
Giải thích -
Để giải quyết vấn đề này, sẽ có hai trường hợp, một nếu vị trí lớn hơn một nửa vị trí (nửa sau), đối lập sẽ là nửa đầu và ngược lại.
Hãy tạo công thức cho điều này về mặt toán học,
Trường hợp 1 - nếu m> n / 2, vị trí của người đối diện là m - (n / 2)
Trường hợp 2 - nếu m =
Chương trình hiển thị hình ảnh minh họa về giải pháp của chúng tôi, Ví dụ
#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;
}
Đầu ra
The position of person opposite to person at position 4 when 8 people are standing in a circle is 8