现在的位置: 首页 > 综合 > 正文

1781 欧几里德游戏

2012年02月08日 ⁄ 综合 ⁄ 共 798字 ⁄ 字号 评论关闭

 

描述

一开始的时候,板上有两个不相等的正整数。两个玩家交替行动,每次行动,当前玩家都必须写出一个新的正整数,且这个正整数必须是当前板上某两个数的差。当玩家再也写不出数字时,他就输了。如果两个玩家都足够聪明,是先手必胜还是后手必胜?

如:一开始板上的是3 4,则第一个玩家只能写1(=4-3),然后第二个玩家可以写 2(=4-2),此时板上的数为1234,轮到第一个玩家,他再也写出出来数字了,所以是他失败。

输入

首先是一个正整数T,表示下面有T组数据。

然后下面的T行,每行两个不同的正整数a, b(a != b, a, b <= 100)

输出

对于每组数据,输出一行。如果先手必胜,则输出"First", 反之输出"Second"(不含引号)

样例输入
1
3 4
样例输出
Second

模拟题

#include<stdio.h>     
int   min;                                         
int   max(int   a,int   b)                    
{   
	int   n=1;                        
	int   sum=1;                       
	for(n=1;n<=(a>b?b:a);n++)   
	{   
		if(a%n==0&&b%n==0)   
		{   
			sum=sum*n;   
			a=a/n;   
			b=b/n;   
			n=1;   
			continue;   
		}                 
	}   
	min=sum*a*b;              
	return   sum;               
}   

int main()   
{   
	int Fnumber,Snumber;  
	int number,i;
	int answer;
	int   Gnumber;
	scanf("%d",&number);
	for (i=1;i<=number;i++)
	{
		
		
		scanf("%d %d",&Fnumber,&Snumber);   
		
		Gnumber=max(Fnumber,Snumber);  
		if(Fnumber>Snumber)
			answer=Fnumber/Gnumber;
		else
			answer=Snumber/Gnumber;

		if(answer%2==1)
			printf("First\n");
		else
			printf("Second\n"); 
		
	}
	return 0;
}

 

抱歉!评论已关闭.