Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตำแหน่งของคนตรงข้ามบนวงกลมใน C++

ในปัญหานี้ เราได้รับจำนวนเต็มสองตัว N และ M มีวงกลมและมีคน N คนยืนบนมัน M แทนตำแหน่งของคน งานของเราคือพิมพ์ตำแหน่งของคนตรงข้ามกับ M

มาดูตัวอย่างเพื่อเข้าใจปัญหา:

Input - N = 6, M = 3

Output - 6

Explanation -

ตำแหน่งของคนตรงข้ามบนวงกลมใน C++

เพื่อแก้ปัญหานี้ จะมีสองกรณี หนึ่งถ้าตำแหน่งมากกว่าครึ่งหนึ่งของตำแหน่ง (ครึ่งหลัง) ตำแหน่งตรงข้ามจะเป็นครึ่งแรก และในทางกลับกัน

มาสร้างสูตรสำหรับสิ่งนี้ทางคณิตศาสตร์:

กรณีที่ 1 - หาก m > n/2 ตำแหน่งของคนตรงข้ามคือ m - (n/2)

กรณีที่ 2 - หาก m <= n/2 ตำแหน่งของคนตรงข้ามคือ m + (n/2)

ตัวอย่าง

โปรแกรมแสดงการประกอบโซลูชันของเรา:

#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