1663:【 例 1】取石子游戏 1

【题目描述】
有一种有趣的游戏,玩法如下:

玩家: 2
人;

道具: N
颗石子;

规则:

1、游戏双方轮流取石子;

2、每人每次取走若干颗石子(最少取 1
颗,最多取 K
颗);

3、石子取光,则游戏结束;

4、最后取石子的一方为胜。

假如参与游戏的玩家都非常聪明,问最后谁会获胜?

【输入】
输入仅一行,两个整数 N
和 K

【输出】
输出仅一行,一个整数,若先手获胜输出 1
,后手获胜输出 2

【输入样例】
23 3
【输出样例】
1
【提示】
数据范围与提示:

对于全部数据, 1≤N≤10^5,1≤K≤N

【思路】必胜策略,可得(N%(k+1)==0)时先手必输,其他则先手必赢(不会必胜策略可以用枚举也能弄出来)

#include 
using namespace std; 
int main()
{
int n,k;
cin>>n>>k;
if(n%(k+1)==0){
	cout<<2;
}
else
{
	cout<<1;
}
return 0;
}

你可能感兴趣的:(算法,必胜策略)