洛谷P1290 歐幾里德的遊戲
阿新 • • 發佈:2018-12-09
題目描述
歐幾里德的兩個後代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 <iostream> #include <cstdio> using namespace std; int main() { int c; cin>>c; for(int i=0; i<c; i++) { int m,n; cin>>m>>n; if(m<n) swap(m,n); int flag=1; while(m/n==1&&m%n!=0) { int wzx=m%n; m=n; n=wzx; flag=-flag; } if(flag==1) { cout<<"Stan wins"<<endl; } else { cout<<"Ollie wins"<<endl; } } }