题目
描述
你正在和朋友玩一个游戏:桌子上有一堆石头,每一次你们都会从中拿出1到3个石头。拿走最后一个石头的人赢得游戏。游戏开始时,你是先手。
假设两个人都绝对理性,都会做出最优决策。给定石头的数量,判断你是否会赢得比赛。
举例:有四个石头,那么你永远不会赢得游戏。不管拿几个,最后一个石头一定会被你的朋友拿走。
样例
样例 1:
输入:n = 4
输出:False
解析:先手取走1,2或者3,对方都会取走最后一个
样例 2:
输入:n = 5
输出:True
解析:先手拿1个,必胜
解析
1+3=4,所以,只要对方最后拿的时候,剩余的石头数量为4,那么无论如何我们都会赢,所以这个问题就简化为了n % 4是否为0
因为题目中我们先手,所以如果n % 4为0 则我们输,反之我方胜
答案
public boolean canWinBash(int n){
return n % 4 != 0;
}