题目详情
两个人玩一个数字游戏,给定两个正整数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();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
"2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)A类三人组获奖名单公示" 该文件标题和描述中涉及到的知识点包括: 1. 算法设计与编程挑战赛:该文件的标题和描述都提到了算法设计与编程挑战赛,这是一个...
【全国高校计算机能力挑战赛】是一项旨在提升大学生计算机技能的比赛,涵盖了广泛的计算机科学和技术领域,包括编程、算法设计、软件工程、数据结构、操作系统、网络、数据库等。本压缩包包含的是2020年赛事的模拟题...
在《C++游戏编程:创建3D游戏》一书中,Math.h和Math.cpp是作者为了支持3D游戏开发而设计的数学库。这个库包含了在3D图形编程中至关重要的数学概念和函数,如向量、矩阵、旋转、平移等操作。了解并熟练运用这些数学...
《挑战编程:程序设计竞赛训练手册》是一本深入探讨程序设计竞赛策略与技巧的专业书籍,由Steven S. Skiena和Miguel A. Revilla共同撰写,刘汝佳翻译,于2009年由清华大学出版社出版。这本书不仅为参加程序设计竞赛...
Scratch3.0游戏案例编程 本游戏实现功能: (1)程序开始,小猫生成一个1-100内的随机数,隐藏变量“随机数”,小猫询问“请输入1到100之间的数”; (2)玩家输入数字后,如果玩家猜错了,小猫会给出“大了”或“小...
"vc++游戏编程&GBA游戏编程中级进阶篇"的学习将涵盖从高级编程语言到低级硬件控制的广泛知识,涉及图形渲染、音效处理、内存管理、多线程等多个核心领域,对于希望深入游戏开发的程序员来说,这是一段充实且挑战性的...
Python 编程案例教程答案 Python 是一种高级、解释性的编程语言,广泛应用于后端开发、数据科学、人工智能、网络爬虫等领域。Python 编程案例教程答案旨在为初学者和中级开发者提供详细的编程案例和答案,帮助他们...
《2022年MathorCup高校数学建模挑战赛赛题》是针对在校大学生的一项年度赛事,旨在提升学生们的数学应用能力、数据分析技能以及解决问题的创新能力。数学建模比赛通常涵盖多元化的主题,涉及自然科学、社会科学、...
Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...
"11-快速心算挑战"项目可能包含一系列数学问题,比如加法、减法、乘法或除法,挑战者需要在限定时间内给出正确答案。通过游戏化的设计,孩子们在解决问题的过程中不仅能锻炼心算能力,还能提高反应速度和决策能力。 ...
MUD游戏编程是一种基于文本的多人在线游戏开发技术,它起源于20世纪70年代末,是Multi-User Dungeon(多用户地下城)的缩写。MUD游戏完全依赖于文字描述,玩家通过输入指令来探索虚拟世界、互动、战斗和社交。这种...
本资源为C++学者入门实用资料,提供了多种编程练习题和相应的答案,涵盖了基本的编程概念和数据结构。通过这些练习题,读者可以提高自己的编程能力和解决问题的思路。 1. factorial_sum 本题目要求计算1!+2!+3!+…...
《网络多人游戏架构与编程》是...通过阅读《网络多人游戏编程——构建网络化游戏》,开发者不仅可以提升网络编程技能,还能了解并解决多人在线游戏中遇到的各种挑战,为创建流畅、稳定且有趣的多人游戏奠定坚实的基础。
小学组Kitten编程比赛模拟题解析 本资源为小学组Kitten编程比赛模拟题,旨在考察学生对编程概念的理解和应用能力。题目涵盖了基本编程概念、逻辑思维、问题解决和编程实现等方面。 第一部分:单选题 1. 乐乐编写...
数字游戏.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码数字游戏.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码数字游戏.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码...
【标题】"2021 年第十一届 MathorCup 高校数学建模挑战赛题目D" 涉及的是一个年度数学建模竞赛的问题,这类比赛通常要求参赛团队在限定时间内解决一个实际问题,利用数学建模方法进行分析并给出解决方案。...
1. 音频控制:题目的第1题涉及到调整左右声道音量的积木,这是编程中对音频处理的一部分,通常在多媒体编程或游戏制作中会用到。 2. 数学计算模块:第2题提到进行数学计算需要使用特定模块的积木,这可能是指基本的...
《Python游戏编程快速上手》是一本面向初学者的编程教程,主要讲解如何利用Python语言进行游戏开发。这本书结合了理论知识与实践项目,旨在帮助读者迅速掌握Python的基础语法,并进一步提升到能够独立编写游戏的水平...
"Python编程从入门到实践课后答案.zip" 文件是一个压缩包,包含了学习Python编程过程中可能遇到的所有章节的课后练习参考答案。这个资源对于初学者来说非常宝贵,因为它可以帮助验证自己的理解和解题方法,同时也能...