Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

공 제거 게임의 승자를 찾는 C++ 프로그램

<시간/>

네 개의 숫자 n1, n2, k1 및 k2가 있다고 가정합니다. 2개의 상자가 있다고 가정합니다. 첫 번째 상자에는 n1개의 공이 있고 두 번째 상자에는 n2개의 공이 있습니다. Amal과 Bimal이 게임을 하고 있습니다. 한 번의 움직임에서 그들은 1에서 k1개의 공을 가져갈 수 있고 던질 수 있습니다. 유사하게 두 번째 움직임에서는 1에서 k2개의 공을 가져갈 것입니다. Amal이 게임을 시작하고 번갈아가며 플레이합니다. 자신의 움직임을 할 수 없는 사람은 게임에서 질 것입니다. 승자가 누구인지 찾아야 합니다.

따라서 입력이 n1 =2와 같으면; n2 =2; k1 =1; k2 =2이면 각 상자에 2개의 공이 있으므로 출력은 Bimal이 됩니다. Amal은 첫 ​​번째 상자에서 하나의 공을 가져오고 Bimal은 두 번째 상자에서 1 또는 2개의 공을 가져갈 수 있습니다. Amal이 어떻게 행동하든 최적의 플레이를 하면 Bimal은 항상 승리할 수 있습니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

if n1 > n2, then:
   return "Amal"
Otherwise
   return "Biaml"

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;

string solve(int n1, int n2, int k1, int k2) {
   if (n1 > n2)
      return "Amal";
   else
      return "Biaml";
}
int main() {
   int n1 = 2;
   int n2 = 2;
   int k1 = 1;
   int k2 = 2;
   cout << solve(n1, n2, k1, k2) << endl;
}

입력

2, 2, 1, 2

출력

Bimal