Trong bài toán này, cho hai số nguyên N và M. Có một đường tròn và N người đứng trên đó. M là vị trí của một người. Nhiệm vụ in vị trí người đối diện với M.
Ví dụ minh họa:
Đầu vào - N = 6, M = 3
Kết quả - 6
Giải thích -

Để giải bài toán, có hai trường hợp: nếu vị trí lớn hơn nửa (nửa sau), đối diện sẽ ở nửa đầu và ngược lại.
Công thức toán học:
Trường hợp 1 - nếu m > n/2, vị trí đối diện = m - (n/2)
Trường hợp 2 - nếu m ≤ n/2, vị trí đối diện = m + (n/2)
Chương trình minh họa
#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 << "Vị trí người đối diện với người tại vị trí " << M << " khi " << N << " người đứng thành vòng tròn là ";
printOppositePosition(N, M);
return 0;
}
Kết quả
Vị trí người đối diện với người tại vị trí 4 khi 8 người đứng thành vòng tròn là 8