题目描述
实现一个算法判断能否在 Nim 游戏中获得胜利。介绍如下:
Nim 游戏是两个人的游戏,对于桌子上指定数量的石头,每次一个人轮流卸下 1 ~ 3 块石头。移除最后一块石头的人将成为赢家。
假设您是一位聪明的玩家,每一步都是最优解。给定石头数量,由您作为先手,请问您能否获得胜利。
例如给定石头数量 7,第一步拿 1 块石头,对手拿 1 - 3 块石头后,第二步拿 3 - 1 块石头,使桌子上只剩下 4 块石头。然后对手拿 1 - 3 块石头后,第三步拿 3 - 1 块石头就可以获得胜利。那么如果石头数量为 7,可以获得胜利。
输入描述
输入一个数字 � (1≤�≤1005)N (1≤N≤1005),表示石头的数量。
输出描述
输出一行,若先手必胜则输出YES
,否则输出 NO
。
输入输出样例
示例
输入
7
输出
YES
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n % 4 == 0) {
cout << "NO";
}
else {
cout << "YES";
}
return 0;
}