洛谷1290 歐幾里德的遊戲 本題地址: http://www.luogu.org/problem/show?pid=1290
題目描述
歐幾里德的兩個後代Stan和Ollie正在玩一種數字遊戲,這個遊戲是他們的祖先歐幾里德發明的。給定兩個正整數M和N,從Stan開始,從其中較大的一個數,減去較小的數的正整數倍,當然,得到的數不能小於0。然後是Ollie,對剛纔得到的數,和M,N中較小的那個數,再進行同樣的操作……直到一個人得到了0,他就取得了勝利。下面是他們用(25,7)兩個數遊戲的過程:
Start:25 7
Stan:11 7
Ollie:4 7
Stan:4 3
Ollie:1 3
Stan:1 0
Stan贏得了遊戲的勝利。 現在,假設他們完美地操作,誰會取得勝利呢?
輸入輸出格式
輸入格式:
第一行爲測試數據的組數C。下面有C行,每行爲一組數據,包含兩個正整數M, N。(M, N不超過長整型。)輸出格式:
對每組輸入數據輸出一行,如果Stan勝利,則輸出“Stan wins”;否則輸出“Ollie wins”輸入輸出樣例
輸入樣例#1:
2
25 7
24 15
輸出樣例#1:
Stan wins
Ollie wins
#include<cstdio>
#include<algorithm>
int tot,m,n;
int main()
{
scanf("%d",&tot);
for (int op=1;op<=tot;++op)
{
scanf("%d%d",&m,&n);
if (m<n) {int t=m;m=n;n=t;}
int f=1;
while ((m/n==1)and(m%n!=0))
{
int t=m%n;
m=n;
n=t;
f=-f;
}
if (f==1) printf("Stan wins\n");
else printf("Ollie wins\n");
}
return 0;
}