C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

ボール除去ゲームの勝者を見つけるためのC++プログラム


4つの数n1、n2、k1、およびk2があるとします。 2つのボックスがあり、最初のボックスにはn1個のボールがあり、2番目のボックスにはn2個のボールがあるとします。アマルとビマルがゲームをプレイしています。 1回の移動で1からk1のボールを取り、それらを捨てることができます。同様に、2回目の移動で1からk2のボールを取ります。アマルはゲームを開始し、彼らは交互にプレイします。自分の動きをプレイできない人はゲームに負けます。誰が勝者になるかを見つけなければなりません。

したがって、入力がn1=2のような場合。 n2 =2; k1 =1; k2 =2の場合、各ボックスに2つのボールがあるため、出力はBimalになります。アマルは最初のボックスから1つのボールを取り、次にビマルは2番目のボックスから1つまたは2つのボールを取ります。アマルがどのように行動しても、ビマルは最適なプレーをすれば常に勝つことができます。

ステップ

これを解決するには、次の手順に従います-

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

  1. Pythonでセット要素除去ゲームの勝者を見つけるためのプログラム

    最初のn個の自然数{1..n}のセットがあるとします。アマルとビマルがゲームをしています。ゲームのルールは以下のとおりです アマルは常に最初にプレイします 各移動中に、現在のプレーヤーはセットから素数pを選択します。次に、プレーヤーはpとそのすべての倍数をセットから削除します。 動きのない人は誰でもゲームに負けます。nがあれば、勝者の名前を見つける必要があります。 したがって、入力がn =5の場合、初期セットは{1,2,3,4,5}であるため、出力はAmalになります。ここで、Amalが数値p =2を選択し、セットから2、4を削除すると、現在のセットは{1,3,5}にな

  2. Pythonで配列除去ゲームの勝者を見つけるプログラム

    AmalとBimalが、いくつかの数字を持つ1つの配列Aを持つゲームをプレイしているとします。ゲームのルールは次のとおりです Bimalは常に開始します 各ターンで、1人のプレーヤーが配列から最大の要素を削除し、削除された要素の右側にある他のすべての要素も削除されます。 交互にプレイします 残りの要素をすべて削除したプレーヤーは、ゲームに勝ちます。 したがって、入力がnums =[5,2,6,3,4]の場合、出力はAmalになります。これは、最初にBimalが[6,3,4]を削除するため、配列が[5,2]になるためです。その後、アマルはすべてを削除するので、彼が勝者になります。 これを