Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 총합에 도달하면 첫 번째 플레이어가 승리할 수 있는지 확인하는 프로그램

<시간/>

두 개의 숫자 k와 target이 있다고 가정합니다. 이제 Amal과 Bimal이 게임을 하고 있다고 생각해 보십시오. 각 라운드에서 Amal은 1에서 k까지의 숫자를 선택하여 처음에 0에서 시작하는 총 점수에 추가합니다. 총점을 목표로 통과하는 사람이 승리합니다. Amal은 항상 먼저 플레이합니다. 우리는 둘 다 최적의 플레이를 한다면 그가 강제로 승리할 수 있는지 확인해야 합니다.

따라서 입력이 k =5 target =10과 같으면 Amal이 먼저 4를 선택한 다음 Bimal이 1, 2, ... 또는 5를 선택하든 Amal은 선택하여 항상 10에 도달할 수 있습니다. 다음 5.

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

  • 목표 %(k + 1)가 0이 아니면
    • 참을 반환
  • 그렇지 않으면
    • 거짓 반환

예시

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

def solve(k, target):
   return target % (k + 1) != 0

k = 5
target = 10
print(solve(k, target))

입력

5, 10

출력

True