Pythonで数を減らすゲームの勝者を見つけるためのプログラム
AmalとBimalがゲームをしていると仮定します。彼らは数nを持ち、それが2の累乗であるかどうかをチェックします。もしそうなら、彼らはそれを2で割ります。そうでなければ、彼らはそれを次に小さい数で減らします。これも2の累乗です。数を1に減らした人は誰でもゲームに勝ちます。アマルは常にゲームを開始し、勝者の名前を見つける必要があります。
したがって、入力がn =19の場合、19は2の累乗ではないため、出力はAmalになります。したがって、Amalはそれを16に減らし、Bimalは2で除算して8になり、次にAmalは2で除算して次のようになります。 4、次にBimalが2になり、最後にAmalが分割して1になり、ゲームに勝ちます。
これを解決するには、次の手順に従います-
- res:=0
- n> 1の場合、do
- b:=1
- b * 2
- b:=b * 2
- n:=n-b
- res:=res + 1
- 「アマル」を返す
- return'Bmal'
例
理解を深めるために、次の実装を見てみましょう-
def solve(n): res = 0 while(n > 1): b = 1 while(b * 2 < n): b *= 2 n -= b res += 1 if res % 2 == 0: return 'Amal' else: return 'Bmal' n = 19 print(solve(n))
入力
19
出力
Amal
-
Pythonで繰り返される整数ゲームを削除して勝つための動きの数を見つけるためのプログラム
2人の友人のAmalとBimalが、numsと呼ばれる番号のソートされたリストを使用してゲームをプレイしているとします。このゲームでは、1ターンで、アマルは任意の3つの数字を選択します。 Bimalはそれらの1つを削除し、次にAmalはそれらの1つを削除します。リストは奇数の要素から始まります。ここで、Amlaは、リストに繰り返し要素が含まれないようにするために必要なターン数を最小化することを望んでいます。Bimalは、ターン数を最大化することを望んでいます。アマルとビマルが最適に行動する場合、このゲームに必要なターン数を見つける必要があります。 したがって、入力がnums =[1、1、2、
-
リスト内で最大数を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 与えられたリスト入力では、与えられたリストの中で最大の数を見つける必要があります。 ここでは、2つのアプローチについて説明します 並べ替え手法の使用 組み込みのmax()関数を使用する アプローチ1-組み込みのsort()関数を使用する 例 list1 = [18, 65, 78, 89, 90] list1.sort() # main print("Largest element is:", list1[-1]) 出力 Largest element is: