C++程式:求解取球遊戲的獲勝者


假設我們有四個數字n1、n2、k1和k2。考慮有兩個盒子,第一個盒子有n1個球,第二個盒子有n2個球。Amal和Bimal在玩遊戲。他們每一步可以從盒子中取出1到k1個球扔掉,另一個玩家在他的回合中可以從另一個盒子中取出1到k2個球。Amal先開始遊戲,他們輪流進行。無法進行操作的一方輸掉遊戲。我們需要找到誰將是贏家。

所以,如果輸入是這樣的:n1 = 2;n2 = 2;k1 = 1;k2 = 2,那麼輸出將是Bimal,因為每個盒子都有2個球。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

輸出

Biaml

更新於:2022年3月4日

瀏覽量:191

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.