题目详情
两个人玩一个数字游戏,给定两个正整数A,B,两个人轮流从一个数中减去另外一个数的正数倍,要保证结果非负,首先得到0的人获胜。例如:30 8经过一步操作可以变为22 8 或者14 8 或者 6 8。两个人都足够聪明。
输入格式:
多组数据,每组数据占一行是两个空格分隔的正整数(在32位整书范围内)
输出格式:
每组数据一行,输出是第一个人赢,还是第二个人赢。
答题说明
输入样例
3 5
4 5
输出样例:
1
2
代码如下
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Mathematics {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int min = 0;//较小数
int max = 0;//较大数
while (cin.hasNext()) {
min = cin.nextInt();
max = cin.nextInt();
if (min > max) {
int temp = min;
min = max;
max = temp;
}
if (max % min == 0) {
System.out.println(1);//第一个人赢
continue;
}
List<Integer> queue = new ArrayList<Integer>();
while (true) {
int shang = max / min;
int mod = max % min;
if (mod == 0)
break;
queue.add(shang);
if (min > mod) {
int temp = min;
min = mod;
mod = temp;
}
max = mod;
}
int size = queue.size();
if (size == 1) {
if (queue.get(0) == 1) {
System.out.println(2);//第二个人赢
}
else {
System.out.println(1);//第一个人赢
}
continue;
}
int win = -1;
for (int i = size - 1; i >= 0; i--) {
if (i == size - 1) {
if (queue.get(i) == 1) {
win = 1;
}
else {
win = 2;
}
}
else if (i == 0) {
if (win == 2 && queue.get(0) > 1) {
win = 1;
}
}
else {
if (queue.get(i) == 1) {
win = win == 1 ? 2 : 1;
}
else {
win = 2;
}
}
}
System.out.println(win);
}
cin.close();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
第二届全国大学生算法设计与编程挑战赛(春季赛 赛题) 答案正在补全中
《Android编程权威指南》挑战练习参考答案。
最新JAVA编程题全集(50题及答案) 最新JAVA编程题全集(50题及答案) 最新JAVA编程题全集(50题及答案) 最新JAVA编程题全集(50题及答案) 最新JAVA编程题全集(50题及答案) 最新JAVA编程题全集(50题及答案) 最新JAVA编程题...
全国青少年编程c++编程一级试卷1及答案.pdf全国青少年编程c++编程一级试卷1及答案.pdf全国青少年编程c++编程一级试卷1及答案.pdf全国青少年编程c++编程一级试卷1及答案.pdf全国青少年编程c++编程一级试卷1及答案.pdf...
Scratch3.0游戏案例编程 本游戏实现功能: (1)程序开始,小猫生成一个1-100内的随机数,隐藏变量“随机数”,小猫询问“请输入1到100之间的数”; (2)玩家输入数字后,如果玩家猜错了,小猫会给出“大了”或“小...
C++编程练习题及答案
趣味编程挑战从Python入门到AI应用_21.pdf趣味编程挑战从Python入门到AI应用_21.pdf趣味编程挑战从Python入门到AI应用_21.pdf趣味编程挑战从Python入门到AI应用_21.pdf趣味编程挑战从Python入门到AI应用_21.pdf趣味...
游戏编程数学和物理基础
2020-2021年度第⼆届全国⼤学⽣算法设计与 编程挑战赛(冬季赛)——正式赛题目
2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)A类三人组获奖名单公示.pdf
3d游戏编程入门经典 3d游戏编程入门经典
全国青少年编程Python编程三级试卷2及答案.pdf全国青少年编程Python编程三级试卷2及答案.pdf全国青少年编程Python编程三级试卷2及答案.pdf全国青少年编程Python编程三级试卷2及答案.pdf全国青少年编程Python编程三级...
一道ACM算法题,目前按书上的测试已经通过,但是没有通过内部测试,大家有相关书的一起来看看吧
刘汝佳编程挑战源码,全部的http://www.cnblogs.com/hxsyl/
C#网络应用编程第3版 马骏 课后答案,12章全
《C++游戏编程:创建3D游戏》这本书中的Math.h和Math.cpp(要把这两个加入到项目里编译)
编程猫编程逻辑练习题模拟测试题附答案
第三期NOC编程猫创新编程赛题回顾模拟题附答案
R语言编程基础-习题数据和答案.rar
多核编程之挑战与应对 多核编程之挑战与应对