POJ 2348
如果n/m>1的话就Stan wins
否则就球gcd,看经过多少次可以出现m==0的情况。注意的是在求gcd的过程中会出现n/m>1的情况,
#include"iostream"
using namespace std;
int gcd(int n,int m)
{
int i=0;
while(1)
{
if(n/m>1)
break;
i++;
n-=m;
if(n<m)
{int tmp=m;m=n;n=tmp;}
if(m==0)
break;
}
return i;
}
int main()
{
int n,m;
while(cin>>n>>m)
{
if(n==m&&n==0)
break;
if(n==m){
cout<<"Stan wins"<<endl;
continue;
}
if(n<m){int tmp=m;m=n;n=tmp;}
int k=gcd(n,m);
if(k%2)
{
cout<<"Ollie wins"<<endl;
continue;
}
cout<<"Stan wins"<<endl;
}
return 0;
}
浙公网安备 33010602011771号