题意:
用小数b去减大数a,次数不限,不能减为负,先出0的赢。
题解:
首先,a能整除b,则当前先手赢。
其次,b比2a大,则当前先手赢。
若a%b,b不可赢,当前先手操作为a%b,b;
若可赢,当前先手操作为b+a%b,b;
否则,继续相减。
注:ok记录每轮当前先手。
#include <iostream>
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b&&a&&b){
if(a<b)swap(a,b);
bool ok=true;
while(1){
if(a%b==0||a>b*2){break;}
int t=a;a=b;b=t%b;
ok=!ok;
}
if(ok)cout<<"Stan wins\n";
else cout<<"Ollie wins\n";
}
}