题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1525
package D0720;
/*
* 题意:两个数a>b的 a-k*b==0的时候就赢了
* 分析:要想赢肯定要最后的两个数约分之后为x,1的时候下棋。
* 如果a/b>=2也就是说a是b的两倍以上的话,先下棋的肯定赢,因为a-k*b永远不可能等于b的倍数。也就是
* 下一个人下棋的时候不可能是x,1的形式。
* 所以只要判断当a/b<2的时候就可以了
*
* */
import java.io.*;
public class HDU1525 {
public static void main(String[] args) throws IOException {
StreamTokenizer st = new StreamTokenizer(new BufferedReader(
new InputStreamReader(System.in)));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
int a, b;
while (st.nextToken() != StreamTokenizer.TT_EOF) {
a = (int) st.nval;
st.nextToken();
b = (int) st.nval;
if (a == 0 && b == 0)
break;
int k = 1;
while (true) {
if (a < b) {
a = a + b;
b = a - b;
a = a - b;
}
if (a / b >= 2 || a % b == 0)
break;
k++;
a %= b;
}
if (k % 2 == 0)
// System.out.println("Ollie wins");
out.println("Ollie wins");
else
out.println("Stan wins");
// System.out.println("Stan wins");
}
out.flush();
}
}