`
tang9140
  • 浏览: 35552 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

编程挑战高校俱乐部数字游戏答案

 
阅读更多
题目详情

两个人玩一个数字游戏,给定两个正整数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();
    }
    
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    CSDN高校俱乐部2014第一届“战神杯”线上编程竞赛

    CSDN高校俱乐部2014年举办的首届“战神杯”线上编程竞赛,是一场专为高校学生打造的编程赛事,意在通过实战演练,提升青年学子的编程实操技能和对算法的深入理解。此活动于2014年3月3日拉开帷幕,至3月31日落下帷幕...

    2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)A类三人组获奖名单公示.pdf

    2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)的成功举办,不仅是对全国范围内高校学子算法设计和编程能力的一次集中检阅,也是对当代大学生团队合作精神和创新思维的一次重要考验。比赛分为A类三人组等...

    《Java 2游戏编程》

    《Java 2游戏编程》是一本专为游戏开发爱好者和专业人士设计的教程,由美国作者Thomas Petchel撰写,并由晏利斌、孙淑敏、邵荣等人翻译成中文。这本书深入浅出地介绍了如何使用Java 2平台进行游戏开发,涵盖了从基础...

    《C++游戏编程:创建3D游戏》中的数学库Math.h

    在《C++游戏编程:创建3D游戏》一书中,Math.h和Math.cpp是作者为了支持3D游戏开发而设计的数学库。这个库包含了在3D图形编程中至关重要的数学概念和函数,如向量、矩阵、旋转、平移等操作。了解并熟练运用这些数学...

    高校俱乐部2014暑期线上编程竞赛

    "高校俱乐部2014暑期线上编程竞赛"是一场针对大学生的编程竞赛活动,旨在提升参赛者的编程技能和解决问题的能力。本次竞赛具有明确的评奖规则和严谨的排名机制,同时提供了丰富的奖品激励。 首先,参与评奖的条件...

    编程猫基础练习题模拟测试题附答案

    编程猫基础练习题模拟测试题附答案 编程猫基础练习题模拟测试题附答案是编程猫平台上的一个基础练习题,旨在帮助少儿编程初学者熟悉编程猫平台的基本操作和编程概念。该练习题主要涵盖了编程猫平台上的积木编程基础...

    Scratch3.0游戏编程 Scratch猜数字游戏

    Scratch3.0游戏案例编程 本游戏实现功能: (1)程序开始,小猫生成一个1-100内的随机数,隐藏变量“随机数”,小猫询问“请输入1到100之间的数”; (2)玩家输入数字后,如果玩家猜错了,小猫会给出“大了”或“小...

    Visual C++ 游戏编程基础

    在《Visual C++ 游戏编程基础》这本书中,作者深入浅出地介绍了使用Visual C++进行游戏开发的基础知识和技巧。本部分压缩包包含了书中的部分源代码和相关资源,便于读者实践和理解。以下是关于这个主题的一些关键...

    3d游戏编程入门经典

    《3D游戏编程入门经典》是一本专为初学者设计的教程,旨在引导读者进入激动人心的3D游戏开发世界。这本书涵盖了从基础概念到实际应用的全方位知识,旨在帮助读者构建扎实的3D编程技能。 3D游戏编程的基础始于理解...

    Java网络编程案例教程习题参考答案 .pdf

    Java网络编程案例教程习题参考答案 Java_network_programming是Java编程语言中一个基础组件,用于实现网络通信。以下是Java网络编程案例教程习题参考答案中涉及到的知识点: 1. Socket编程:Socket是Java网络编程...

    编程猫竞赛测试题模拟测试题附答案

    答案是ABC,这个问题考查了学生对编程概念和游戏元素的理解。 知识点:游戏元素、编程概念、角色转换 8. 运行下面的程序,绘制的图形为 这个问题考查了学生对scratch编程语言的理解和编程能力。答案是AB,这个...

    游戏编程数学和物理基础

    游戏编程数学和物理基础

    C#网络应用编程第3版 马骏 课后答案.rar

    《C#网络应用编程》是马骏先生撰写的一本深入探讨C#在构建网络应用程序方面的专著,第三版更是对前两版的完善和提升,旨在帮助开发者掌握使用C#进行网络编程的核心技术和实践方法。这本书涵盖了从基础的网络概念到...

    MUD游戏编程光盘完整版

    MUD游戏编程是一种基于文本的多人在线游戏开发技术,它起源于20世纪70年代末,是Multi-User Dungeon(多用户地下城)的缩写。MUD游戏完全依赖于文字描述,玩家通过输入指令来探索虚拟世界、互动、战斗和社交。这种...

    C++游戏编程入门.pdf

    根据给定文件的信息,我们可以提炼出关于C++游戏编程的一些关键知识点。首先,标题“C++游戏编程入门.pdf”明确指出这是一本介绍如何使用C++进行游戏开发的教材。C++是一种广泛应用于游戏开发的强大编程语言,因为它...

    网络多人游戏架构与编程Multiplayer Game Programming-Architecting Networked Game.pdf

    《网络多人游戏架构与编程》是...通过阅读《网络多人游戏编程——构建网络化游戏》,开发者不仅可以提升网络编程技能,还能了解并解决多人在线游戏中遇到的各种挑战,为创建流畅、稳定且有趣的多人游戏奠定坚实的基础。

    Matlab编程第四版(StephenJ.Chapman)Quiz部分答案.pdf

    此书的 Quiz 部分答案则提供了大量的练习题和答案,帮助读者巩固所学知识,提高编程能力。 本书的主要特点包括: * 详细的 Matlab 基础知识讲解 * 丰富的实践经验和案例分析 * 广泛的应用领域,包括科学计算、数据...

    C++编程练习题大全(带答案)

    本资源为C++学者入门实用资料,提供了多种编程练习题和相应的答案,涵盖了基本的编程概念和数据结构。通过这些练习题,读者可以提高自己的编程能力和解决问题的思路。 1. factorial_sum 本题目要求计算1!+2!+3!+…...

    自己整理的全国青少年电子信息智能创新大赛图形化编程(必做题模拟四卷).docx

    1. 音频控制:题目的第1题涉及到调整左右声道音量的积木,这是编程中对音频处理的一部分,通常在多媒体编程或游戏制作中会用到。 2. 数学计算模块:第2题提到进行数学计算需要使用特定模块的积木,这可能是指基本的...

    Python游戏编程快速上手(pdf+源码).zip

    《Python游戏编程快速上手》是一本面向初学者的编程教程,主要讲解如何利用Python语言进行游戏开发。这本书结合了理论知识与实践项目,旨在帮助读者迅速掌握Python的基础语法,并进一步提升到能够独立编写游戏的水平...

Global site tag (gtag.js) - Google Analytics