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

ทำนายผู้ชนะในเกมเหรียญ (Coin Game) ใน C++


ในเกมนี้ มีผู้เล่นสองคนคือ X และ Y งานของเราคือทำนายว่าใครจะชนะเกมหากทั้งคู่เล่นอย่างเหมาะสมที่สุดและ X เริ่มเกม

เกม

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

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

Input: M = 2 , N = 2 Output: X

คำอธิบาย - X เริ่มเกมและเลือกกอง M (ทั้งคู่เหมือนกัน) และแบ่งกองออกเป็นสอง ตอนนี้แต่ละกองจะมีเหรียญเพียงหนึ่งเหรียญ ดังนั้น Y จะไม่มีการเคลื่อนไหวเหลืออยู่ สิ่งนี้จะทำให้ X ชนะ

ในการแก้ปัญหานี้ เราต้องดูโอกาสที่ผู้เล่น X ชนะ กรณีที่ผู้เล่น X ชนะคือเมื่อกองใดกองหนึ่งมีจำนวนเหรียญเป็นคู่ มิฉะนั้น Y จะเป็นผู้ชนะ

โปรแกรมแสดงการนำตรรกะของเราไปใช้

ตัวอย่างโค้ด

#include <iostream>
using namespace std;

int isXWinner(int M, int N) {
    if (M % 2 == 0 || N % 2 == 0)
        return 1;
    return 0;
}

int main() {
    int M = 1, N = 2;
    cout<<"Game Starts!\n";
    if(isXWinner(M,N))
        cout<<"Player X is the Winner";
    else
        cout<<"Player Y is the Winner";
    return 0;
}

ผลลัพธ์

Game Starts! Player X is the Winner