님의 수정된 게임은 배열 최적화 게임입니다. 이 게임은 시작 플레이어와 최적의 움직임을 기반으로 승자를 예측합니다.
Game Logic − 이 게임에서는 요소가 포함된 배열{}이 제공됩니다. 일반적으로 게임을 플레이하는 플레이어는 플레이어1과 플레이어2입니다. 두 가지 모두의 목표는 모든 숫자가 배열에서 제거되는지 확인하는 것입니다. 이제 플레이어1은 3으로 나누어지는 숫자를 모두 제거해야 하고 플레이어2는 5로 나누어지는 숫자를 모두 제거해야 합니다. 목표는 모든 요소를 최적으로 제거하고 이 경우 승자를 찾는 것입니다.
Array : {1,5, 75,2,65,7,25,6} Winner : playerB. A removes 75 -> B removes 5 -> A removes 6 -> B removes 65 -> No moves for A, B wins.
코드는 A가 제거할 수 있는 요소 수, B가 제거할 수 있는 요소 수, 둘 다 제거할 수 있는 요소 수를 찾습니다. 둘 다 제거할 수 있는 요소의 수에 따라 솔루션을 찾습니다. A가 첫 번째 요소를 제거하면 B보다 하나 더 많은 요소를 제거하더라도 승리할 수 있습니다. 일반적으로 제거할 요소의 최대 개수를 가진 플레이어가 승리합니다.
#include <bits/stdc++.h> using namespace std; int main() { int arr[] = {1,5, 75,2,65,7,25,6}; int n = sizeof(arr) / sizeof(arr[0]); int movesA = 0, movesB = 0, movesBoth = 0; for (int i = 0; i < n; i++) { if (arr[i] % 3 == 0 && arr[i] % 5 == 0) movesBoth++; else if (arr[i] % 3 == 0) movesA++; else if (arr[i] % 5 == 0) movesB++; } if (movesBoth == 0) { if (movesA > movesB) cout<<"Player 1 is the Winner"; cout<<"Player 2 is the Winner"; } if (movesA + 1 > movesB) cout<<"Player 1 is the Winner"; cout<<"Player 2 is the Winner"; ; return 0; }
Player 2 is the Winner
위 내용은 C로 수정된 Nim 게임?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!