问题描述:一堆石子有 n 个 ,两个人开始轮流取,每人最多取m个,最少取1个,最后一个将石子取完的是赢家。
思想:对于先手来说,如果有(m+1)个石子,先手取 k 个,后手就可以取 m+1-k 个,所以有式子 n=(m+1)*r+s ,s<=m 时,先手可以将s先拿走,然后先手变成了后手 ,保持取r个回合,就一定能赢
撸代码:
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int test,num,m;
scanf("%d",&test);
while(test--){
scanf("%d%d",&num,&m);
if(num%(m+1)<=m&&num%(m+1)){
printf("first\n");
}else {
printf("second\n");
}
}
return 0;
}