首页 > 其他分享 >数字加减游戏

数字加减游戏

时间:2023-07-25 15:06:01浏览次数:32  
标签:10 数字 nextInt int 加减 -- 变成 游戏

题目描述

  • 小明在玩一个数字加减游戏,只使用加法或者减法,将一个数字数字加减游戏_整除变成数字数字加减游戏_Math_02
  • 每个回台,小明可以用当前的数字加上或减去一个数字
  • 现在有两种数字可以用来加减,分别为
  • 其中数字数字加减游戏_整除_03没有使用次数限制
  • 请问小明最少可以用多少次数字加减游戏_整除_04,才能将数字数字加减游戏_整除变成数字数字加减游戏_Math_02
  • 题目保证数字数字加减游戏_整除一定能变成数字数字加减游戏_Math_02

输入描述

  • 输入的唯一一行包含四个正整数数字加减游戏_用例_09并且数字加减游戏_整除_10

输出描述

  • 输出的唯一一行包含一个整数,表示最少需要使用多少次数字加减游戏_整除_04才能将数字数字加减游戏_整除变成数字数字加减游戏_Math_02

用例

用例1

--输入
1 10 5 2
--输出
1
--说明
初始值 1 加上一次 a 变成 6,然后加上两次 b 变成 10,因此  a 的使用次数为 1


用例2

--输入
11 33 4 10
--输出
2
--说明
11 减两次 a 变成 3,然后加三次 b 变成 33,因此 a 的使用次数是 2 次

code + analysis

package com.hw;

import java.util.Scanner;

/**
 * desc :  <a href="https://fcqian.blog.csdn.net/article/details/128385337">数字加减游戏</a>
 * <p>
 * create time : 2023/7/24 10:20
 */
public class NumMaster {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int s = in.nextInt();
        int t = in.nextInt();
        int a = in.nextInt();
        int b = in.nextInt();

        numMaster(s, t, a, b);
    }

    /*   目标:将数字  s 变成 数字 t
     *        提供数字  a  b 可以来加减
     *        数字 b 没有使用次数限制
     *        求 最少用多少次数字 a,可以将数字 s 变成数字 t
     *
     * ex:   s = 1, t = 10, a = 5, b = 2
     *       s = 11, t = 33, a = 4, b = 10
     *
     * 那么可以这样考虑:假设不使用 a 的话,可不可以将 s 变成 t 呢?
     *                |- 首先可以得到 abs(s - t)  其是否可以 整除 数字 b
     *                使用一个数字 a,那么得到的差值 abs(s - t) - a  是否可以整除数字 b
     *                这里有一个变化,实际上应该是 加上/减去 若干个a,判断其是否可以整除数字 b
     */

    private static void numMaster(int s, int t, int a, int b) {
        // s t 的差值
        int diff = Math.abs(s - t);

        // 判断最多需要几个 a 可以满足条件
        int needA = (diff + a) / a;

        for (int i = 0; i < needA; i++) {
            // 加上若干个 a 或 减少若干个 a
            int add = (diff + i * a) % b;
            int up = Math.abs(diff - i * a) % b;
            if (add == 0 || up == 0) {
                System.out.println(i);
                break;
            }
        }
    }

}

标签:10,数字,nextInt,int,加减,--,变成,游戏
From: https://blog.51cto.com/u_16079703/6845422

相关文章

  • 用Python定义一个函数,它返回整数n从右边开始的第k个数字
    用Python定义一个函数,返回整数n从右边开始的第k个数字在编程中,我们经常需要从一个整数中获取特定位置的数字。其中一个常见的需求是返回一个整数n从右边开始的第k个数字。在本文中,我们将使用Python定义一个函数来实现这一需求,并通过代码示例进行演示。问题背景假设我们有一个整......
  • 天津同仁堂X伙伴云:如何“化整为零”落地数字化?有道有术有零代码
    张伯礼院士曾指出,中药制造的现代化水平,还停留在10%左右的阶段。中医药行业,老字号企业,该如何通过数字化焕发新活力?天津同仁堂通过与伙伴云合作,零代码构建数字化系统,让技术与思维共同成长,实现“提质、降本、增效”。天津同仁堂走进伙伴云【小伙开麦】直播间,探讨企业数字化的“道”与......
  • 【专题】2022年中国企业数字化学习行业研究报告PDF合集分享(附原数据表)
    报告链接:http://tecdat.cn/?p=32263原文出处:拓端数据公众号多变,不确定性,复杂,模糊不清的新业务图景,加快了公司人才发展模式的数字化转变;疫情冲击离线运输与公司现金流量,消费者支出减少,机构表现受压,数字化学习突破;行业数字化水平不断提高,商业体系和学习体系之间的关联性不断加强,企......
  • 题解 P1538 【迎春舞会之数字舞蹈】
    postedon2021-06-0113:24:05|under题解|source给\(0\cdots9\)每个数字打表,打它在相应的位置有没有一划。然后把每个数字分成\(5\)部分,暴力输出即可。#include<cstdio>#include<cstring>usingnamespacestd;constchar*db[]={"-||||-","||"......
  • 深耕零售行业数字化,乐檬软件与华为云携手共进
    本文分享自华为云社区《云享伙伴丨乐檬软件携手华为云开发者技术服务团队迈向应用现代化之路》,作者:华为云社区精选。近几年,前有新零售模式的崛起,后有疫情大考带来的市场变化。零售行业面临着消费者需求多样化、竞争加剧和供应链复杂化等挑战,食品零售行业已经到了竞争白热化的阶......
  • HJ67 24点游戏算法
    1.题目读题 HJ67 24点游戏算法 考查点 2.解法思路 代码逻辑 具体实现importjava.util.Scanner;importjava.util.Arrays;publicclassHJ67{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);whil......
  • # 实验三 **数字炸弹游戏**
    实验三数字炸弹游戏一、实验目的1.了解和掌握数字炸弹游戏的原理2.熟练运用python的基本语句与关系运算符二、实验内容数字炸弹游戏流程:1、电脑随机生成炸弹数字2、打印炸弹数字范围3、自己猜一次784、缩小炸弹范围,并打印出来。1-786、循环3、4操作,直到炸弹爆炸,游戏结......
  • HJ92 在字符串中找出连续最长的数字串
    1.题目读题HJ92 在字符串中找出连续最长的数字串  考查点 2.解法思路 代码逻辑 具体实现 自行实现publicclassHJ092{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);while(sc.hasNext()){......
  • 智慧园区楼宇合集:数字孪生管控系统
    智慧园区是指将物联网、大数据、人工智能等技术应用于传统建筑和基础设施,以实现对园区的全面监控、管理和服务的一种建筑形态。通过将园区内设备、设施和系统联网,实现数据的传输、共享和响应,提高园区的管理效率和运营效益,为居住者和使用者提供更加智能化、舒适化的服务和环境。图扑......
  • GIS应用领域揭秘:探索数字世界中的奇妙之旅
    随着科技的飞速发展,地理信息系统(GIS)作为一种基于地理位置信息的强大工具,在各个领域中的应用愈发广泛。从城市规划到农业发展,从环境保护到医疗健康,GIS的应用越来越深入,为我们带来了许多新奇的发现和意想不到的效益。 GIS在城市规划领域的应用不可忽视。通过收集大量的城市数据,GI......