Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Game Nim biến thể trong C

Game 2 người chơi trên mảng số. Người 1 xóa số chia hết 3, Người 2 xóa số chia hết 5. Ai không còn nước đi thì thua.

Ví dụ

Mảng: {1,5,75,2,65,7,25,6}

  • A xóa 75 (chia 3&5)
  • B xóa 5
  • A xóa 6
  • B xóa 65
  • A hết nước → B thắng

Logic

  • Đếm movesA (chia 3), movesB (chia 5), movesBoth (chia 15)
  • Nếu movesBoth=0: người nhiều nước hơn thắng
  • Có movesBoth: A có lợi thế đi trước, thắng nếu movesA+1 > movesB

Chương trình

#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 movesB) cout << "Player 1 thang";
        else cout << "Player 2 thang";
    } else if (movesA + 1 > movesB) {
        cout << "Player 1 thang";
    } else {
        cout << "Player 2 thang";
    }
    return 0;
}

Kết quả

Player 2 thang