Game Nim: n viên đá, mỗi lượt lấy 1-3 viên. Người lấy viên cuối thắng. Người 1 đi trước. Cả hai chơi tối ưu. Xác định người 1 có thắng không.
Quy luật: Người 1 thắng trừ khi n chia hết cho 4.
Ví dụ: n=5 → true (người 1 lấy 1, còn 4, người 2 bất lợi).
Ví dụ triển khai C++
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool canWinNim(int n) {
return n % 4 != 0;
}
};
int main() {
Solution ob;
cout << boolalpha << ob.canWinNim(5); // true
return 0;
}
Đầu vào / Đầu ra
Input: 5 Output: true (1)