题意:给你两个正数,n 和m(假设n>m); 将两者大的减去小的的正整数倍,差必须为非负数,递归循环,谁使得出现0 则 win
这题的关键是谁遇到的第一个n大于等于2*m,谁就胜利,以为他们都是聪明的!!如果没有,则一路循环下去,奇数次则第一个人胜利
#include<cstdio>
#include<iostream>
#include<math.h>
using namespace std;
typedef long long ll;
int main()
{
ll n,m,a;
int res;
while(~scanf("%lld%lld",&n,&m)&&(n+m))
{
res=0;
if(n<m) swap(n,m);
while(m&&n/m==1)
{
res++;
n=n-m;
if(n<m) swap(n,m);
}
if(m)
{
if(res%2) puts("Ollie wins");
else puts("Stan wins");
}
else
{
if(res%2) puts("Stan wins");
else puts("Ollie wins");
}
}
return 0;
}