题意:容易理解,在威佐夫博奕的基础上新增加了一条要求:就是如果在赢得条件下,输出第一步怎么走。
分析:使用暴力判断,详细见代码。
代码:
#include<stdio.h>
#include<string.h>
#include<math.h> int a, b; int main()
{
double x = ( + sqrt(5.0))/2.0;
int i,k,temp,n,m;
while(scanf("%d%d",&a,&b)!=EOF&&(a+b))
{
if(a>b)
{
temp = a;
a=b;
b=temp;
} k=b-a;
if((int)(k*x)==a)
printf("%d\n",);
else
{
printf("%d\n",);
for(i=;i<=a;i++)
{
n=a-i;
m=b-i;
k=m-n;
if((int)(k*x)==n)
printf("%d %d\n",n,m);
} for(i=b-;i>=;i--)
{
n=a;
m=i;
if(n>m)
{
temp=n;
n=m;
m=temp;
}
k=m-n;
if((int)(k*x)==n)
printf("%d %d\n",n,m);
}
}
}
return ;
}