【题目描述】
有一种有趣的游戏,玩法如下:
玩家2 人;
道具N 颗石子;
规则:
1、游戏双方轮流取石子;
2、每人每次取走若干颗石子(最少取 11 颗,最多取 KK 颗);
3、石子取光,则游戏结束;
4、最后取石子的一方为胜。
假如参与游戏的玩家都非常聪明,问最后谁会获胜?
【输入样例】
输入仅一行两个整数N和K 。
【输出】
输出仅一行,一个整数,若先手获胜输出 11,后手获胜输出 22。
【输入样例】
23 3
【输出样例】
1
【提示】
数据范围与提示:
对于全部数据, 1≤N≤105,1≤K≤N1≤N≤105,1≤K≤N。
分析:
说实话,这题肥肠简单,只要用一个公式就ok了,也就是判断一下石子数是不是最大可取石子数加1的倍数就行了。因为只要是倍数关系,那么只要后手使石子数一直保持这个倍数关系他就能赢了!
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
scanf("%d %d",&n,&m);
if(n%(m+1)==0) printf("2");
else printf("1");
return 0;
}