两个人玩一个数字游戏,给定两个正整数A,B,两个人轮流从一个数中减去另外一个数的正数倍,要保证结果非负,首先得到0的人获胜。例如:30 8经过一步操作可以变为22 8 或者14 8 或者 6 8。两个人都足够聪明。 输入格式: 多组数据,每组数据占一行是两个空格分隔的正整数(在32位整书范围内) 输出格式: 每组数据一行,输出是第一个人赢,还是第二个人赢。
import java.util.Scanner;
public class ScheherazadeNumber
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("input two numbers");
while(in.hasNextInt())
{
int a = in.nextInt();
int b = in.nextInt();
test(a,b);
}
}
public static void test(int a,int b)
{
int i;
if (a < b)
{
int t;
t = a;
a = b;
b = t;
}
if (a % b == 0)
{
System.out.println(1);
}
else
{
for (i = 1 ; a % b != 0 ; i++)
{
int k = a/b;
a = a - k*b;
if (a < b)
{
int t;
t = a;
a = b;
b = t;
}
}
if (i % 2 == 0)
System.out.println(2);
else
System.out.println(1);
}
}
}
------解决思路----------------------
我试了下,输出的是1,是表示第一个人赢吗
------解决思路----------------------
你把你出的问题写出来呀,我这能够运行呀,代码必须要用代码块的,否则被斑竹看见要被打屁屁的~!