当前位置: 首页 > news >正文

华为OD机试 - 计算面积 - 逻辑分析(Java 2023 B卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

绘图机器的绘图笔初始位置在原点(0,0)。

机器启动后,其绘图笔按下面规则绘制直线:

  1. 尝试沿着横向坐标轴正向绘制直线,直到给定的终点值E;
  2. 期间可通过指令在纵坐标方向进行偏移,并同时绘制直线,偏移后按规则1绘制直线;
  3. 指令的格式为X offsetY。表示在横坐标X沿纵坐标方向偏移offsetY,offsetY为正整数,表示正向偏移,为负数,表示负向偏移。

给定了横坐标终点值E,以及若干条绘制指令。

请计算绘制的直线和横坐标轴,以及X-E的直线组成图形的面积。

二、输入描述

第一行输入两个正整数N、E。

  • N表示多少条指令;
  • E表示横坐标终点值;

接下来的N行输入两个正整数,表示指令X offsetY。

用例保证横坐标X以递增排序方式出现,且不会出现相同横坐标。

取值范围:

  • 0<N<=10000
  • 0<X<=E<=20000
  • -10000<=offsetY<=10000

三、输出描述

一个整数,表示计算得到的面积。

四、解题思路

  1. 第一行输入两个正整数N、E;
  2. 接下来的N行输入两个正整数,表示指令X offsetY;
  3. X轴坐标 * Y轴坐标计算面积;
  4. 叠加Y轴偏移量;
  5. 重置横坐标X;
  6. 叠加面积(横坐标终点值 - 当前横坐标) * Y轴坐标;
  7. 输出计算得到的面积。

五、Java算法源码

package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        // 多少条指令
        int N = arr[0];
        // 横坐标终点值
        int E = arr[1];
        int area = 0;
        // X轴偏移量
        int xSkew = 0;
        // Y轴偏移量
        int ySkew = 0;
        // 接下来的N行输入两个正整数,表示指令X offsetY。
        for (int i = 0; i < N; ++i) {
            // 指令X offsetY
            String[] commands = sc.nextLine().split(" ");
            // 横坐标X
            int X = Integer.parseInt(commands[0]);
            // X轴坐标 * Y轴坐标计算面积
            area += Math.abs(ySkew) * (X - xSkew);
            // 叠加Y轴偏移量
            ySkew += Integer.parseInt(commands[1]);
            // 重置横坐标X
            xSkew = X;
        }
        // 叠加面积(横坐标终点值 - 当前横坐标) * Y轴坐标
        area += (E - xSkew) * ySkew;
        System.out.println(area);
    }
}

六、效果展示

1、输入

5 8
1 1
2 2
3 -1
4 -2
5 1

2、输出

9

3、说明

在这里插入图片描述

在这里插入图片描述


🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

相关文章:

  • 软件定制APP开发步骤分析|小程序
  • C语言关于自定义字符函数和字符串函数的相关笔试题(找工作必看)
  • inject和provide源码
  • 【SpringBoot项目】SpringBoot+MyBatis+MySQL电脑商城
  • Vue系列(四)之 Vue路由介绍和Node.js的环境搭建
  • http的网站进行访问时候自动跳转至https
  • 【C++】泛型算法(五)泛型算法的使用与设计
  • 使用scss简化媒体查询
  • 国家网络安全宣传周知识竞赛活动小程序界面分享
  • day44 数据库查询命令
  • SpringBoot3基础:最简项目示例
  • linux下文件操作命令
  • 工作比读研简单多了
  • cpolar内网穿透
  • 淘宝分布式文件存储系统( 二 ) -TFS
  • c++模板初阶
  • 行情分析——加密货币市场大盘走势
  • Tomcat多实例+Nginx动静分离、负载均衡
  • GDB 用法之参数输入
  • 全智V5+AXP233电源管理芯片调试
  • IMF将今年全球经济增长预期由3.3%下调至2.8%
  • 山西一国道塌陷致2死后续:地质雷达检测出10处道路病害
  • 美股再遭重挫,标普500指数11个板块全线溃败
  • 中国乒乓球队公示多哈世乒赛参赛名单,王楚钦孙颖莎混双重组
  • 疼痛管理“童”样重要,解读围术期疼痛管理
  • 黄仁勋:英伟达坚定不移服务中国市场,AI将在每个行业引发颠覆性变革