标签:输出 空格 nbsp 内容 描述 博弈 names for cin
/* 又是取石子
题目内容:
"有甲乙两个人玩取石子游戏,共有n个石子(1<=n<=30000)两个人轮流取,甲先取.每次最多取m个(1<=m<=30000)最少取一个,当轮到谁取的时候没有石子了,谁就赢.
比如4个石子,每次最多取3个,那末先取的人(甲)一定赢n和m谁大没有限制.)
(甲拿走3个,乙只拿走1个,下面轮到甲了,但是没有石子了,甲赢了.)
现在要求你写一个程序,输入n(总的石子个数),最多可以取的石子个数m,输出甲(先取的人)是否会赢,会赢的话输出YES,否则输出LOSE.
我们这里假设甲乙两个人都采取最好的策略,也就是甲乙都非常想赢而且足够聪明.
比如输入11 4 输出LOSE"
输入描述
整数n m, 空格隔开
输出描述
YES或者LOSE
输入样例
11 4
输出样例
LOSE
*/
//思路:1为必败局,那么可以知道2 到 m+1为必胜局,m + 2无论怎么取都是在2到m+1之间,所以m + 2 为必败局,依次 类推。
#include <iostream>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
if(n == 1)
cout << "LOSE";
else{
int k;
for(int i = 1; i <= n; i++){
if(i * (m + 1) + 1 == n){
cout << "LOSE";
return 0;
}
}
cout << "YES";
}
return 0;
}
标签:输出 空格 nbsp 内容 描述 博弈 names for cin
原文地址:http://www.cnblogs.com/zhumengdexiaobai/p/7429807.html