有2n(n≥4)个棋⼦排成⼀⾏,开始位置为⽩⼦全部在左边,⿊⼦全部在右边。例如n=5时:00000+++++。移动棋⼦的规则是:每次必须同时移动相邻两个棋⼦,颜⾊不限,可以左移也可以右移到空位上去,但不能调换两个棋⼦的左右位置。每次移动必须跳过若⼲个棋⼦(不能平移),要求最后能移成⿊⽩相间的⼀⾏棋⼦。如n=5时,称为:__0+0+0+0+0+。
答:给定格子的数目n(n为不超过300的正整数)。返回一个整数,1代表能获胜,0代表不能获胜。
由于棋子最开始是在第一格,所以棋子剩下可走的格数是n-1格,最优策略是留下最后4格,则谁先走谁输。因为两人均选择最优策略,则为了能够保证最后留下四格,则每次两人共走四格。
int checkWin(int n) {
if ((n-1)%4==0)//若剩下的四格先走,则会输
return 0;
else
return 1;//否则会赢