此题为巴什博奕裸题,若是不太清楚什么是巴什博奕,可以看此处另外一道有关巴什博奕的入门题,我在其中有介绍巴什博奕,此题就是要求输出先手是否能获胜,如果能,输出第一次要价的数值,不能就输出none,然后注意一下当M<(N+1)时,要从M到N依次输出数值,因为要输出所有可以成功的要价。
源码如下:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n, m;
while(scanf("%d%d",&m,&n)!=EOF)
{
int g=m%(n+1);
int s=m/(n+1);
if(g)
{
if(s==0)
{
for(int i=m;i<n;i++)
cout<<i<<' ';
cout<<n<<endl;
}
else cout<<m%(n+1)<<endl;
}
else cout<<"none"<<endl;
}
return 0;
}