1. 程式人生 > >洛谷P1290 歐幾里德的遊戲

洛谷P1290 歐幾里德的遊戲

題目描述

歐幾里德的兩個後代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;
		}
	}

}