【题目描述】
有一种有趣的游戏,玩法如下:
玩家2 人;
道具N 颗石子;
规则:
1、游戏双方轮流取石子;
2、每人每次取走若干颗石子(最少取 1 颗,最多取 K 颗);
3、石子取光,则游戏结束;
4、最后取石子的一方为胜。
假如参与游戏的玩家都非常聪明,问最后谁会获胜?
【输入样例】
输入仅一行两个整数N和K 。
【输出】
输出仅一行,一个整数,若先手获胜输出 1,后手获胜输出 2。
【输入样例】
23 3
【输出样例】
1
代码;
#include<iostream>
using namespace std;
int main()
{
int n,m;
scanf("%d %d",&n,&m);
if(n%(m+1)==0) printf("2");
else printf("1");
/*
如果是 m+1 那么无论是取 1到m 都会失败
如果是其他值 就有下一轮
*/
return 0;
}
游戏胜负预测算法
本文介绍了一个简单的游戏胜负预测算法,游戏由两名玩家轮流从一堆石子中取走一定数量的石子,最后取走石子的玩家获胜。通过数学方法判断初始石子数量和最大取石子数量条件下,先手或后手玩家是否能赢得比赛。
3618

被折叠的 条评论
为什么被折叠?



