首页 > 编程语言 >Java复习16(PTA)

Java复习16(PTA)

时间:2024-10-25 11:17:44浏览次数:3  
标签:Java weight 16 int Express PTA 快递 ex public

快递计价器

分数 20

全屏浏览

切换布局

作者 大数据2021

单位 山东科技大学

现需要编写一个简易快递计价程序。具体来说:

1、抽象快递类Express,其包含一个属性int weight表示快递重量(单位为kg),一个方法getWeight()用于返回快递重量和一个抽象方法getTotal()用于计算快递运费。

2、两个类继承Express,分别是:
(a)顺路快递SLExpress:计价规则为首重(1kg)12元,每增加1kg费用加2元。
(b)地地快递DDExpress:计价规则为首重(1kg)5元,每增加1kg费用加1元。

3、菜菜驿站类CaicaiStation,提供静态方法 int calculate(Express[] ex) 用于计算所有快递的费用。

输入样例:

6
SL 2
DD 2
SL 1
SL 1
SL 1
DD 3

输入解释:

第1行n表示需要计算的快递件数
第2至n+1表示每个快递信息,即选哪家快递公司 以及快递的重量(单位kg)

输出样例:

63

输出解释:

所有快递总运费。

裁判测试程序样例:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        Express[] ex = new Express[n];
        for (int i = 0; i < ex.length; i++) {
            if (sc.next().equals("SL"))
                ex[i] = new SLExpress(sc.nextInt());
            else
                ex[i] = new DDExpress(sc.nextInt());
        }

        System.out.println(CaicaiStation.calculate(ex));
        sc.close();
    }
}
/* 请在这里填写答案 */

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

abstract class Express {
    int weight;

    public abstract int getWeight();

    public abstract int getTotal();
}

class SLExpress extends Express {
    public SLExpress(int weight) {
        this.weight = weight;
    }

    @Override
    public int getWeight() {
        // TODO Auto-generated method stub
        return this.weight;
    }

    @Override
    public int getTotal() {
        // TODO Auto-generated method stub
        if (this.weight == 1) {
            return 12;
        } else {
            return 12 + 2 * (this.weight - 1);
        }
    }

}

class DDExpress extends Express {
    public DDExpress(int weight) {
        this.weight = weight;
    }

    @Override
    public int getTotal() {
        if (this.weight == 1) {
            return 5;
        } else {
            return 5 + (this.weight - 1);
        }
    }

    @Override
    public int getWeight() {
        // TODO Auto-generated method stub
        return this.weight;
    }
}

class CaicaiStation {
    public static int calculate(Express[] ex) {
        int sum = 0;
        for (Express e : ex) {
            sum += e.getTotal();
        }
        return sum;
    }
}

标签:Java,weight,16,int,Express,PTA,快递,ex,public
From: https://blog.csdn.net/2301_79272475/article/details/143230070

相关文章

  • LeetCode_70. 爬楼梯_java
    1、题目70.爬楼梯https://leetcode.cn/problems/climbing-stairs/假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输......
  • LeetCode_509. 斐波那契数_java
    1、题目509.斐波那契数https://leetcode.cn/problems/fibonacci-number/斐波那契数(通常用F(n)表示)形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2),其中n>1给定n,请......
  • 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc
    本文基于Netty4.1.112.Final版本进行讨论在之前的Netty系列中,笔者是以4.1.56.Final版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本4.1.112.Final对Netty的相关设计展开解析,之所以这么做的原因是Netty的内存池设计一直在不断地演进优化。在4.1.52.Final......
  • LeetCode_2119. 反转两次的数字_java
    1、题目2119.反转两次的数字https://leetcode.cn/problems/a-number-after-a-double-reversal/反转一个整数意味着倒置它的所有位。   例如,反转2021得到1202。反转12300得到321,不保留前导零。给你一个整数num,反转num得到reversed1,接着反转reversed1......
  • FMC293-基于FMC 16路LVDS输入或者输出子卡
    FMC293-基于FMC16路LVDS输入或者输出子卡一、板卡概述 板卡基于FMC LPC接口设计16路 LVDS输入或者输出接口,用于图像传输,数据传输等应用。  板卡通过选焊接SN65LVDS386或者SN65LVDS387,只能单独输入,或者单独输出工作。 二、性能指标板卡功能参数内容LVDS输入芯片型......
  • 实战篇:(二十一)Java 开发指南:避免 18个常见错误,提升你的编码效率
    实战篇:(二十一)Java开发指南:避免18个常见错误,提升你的编码效率Java作为一门成熟的编程语言,拥有丰富的生态系统与广泛的应用。然而,即使是经验丰富的开发者,也时常会在日常开发中犯一些常见的错误。这些错误不仅会影响代码的可读性,还可能造成性能问题甚至难以调试的Bug。本......
  • JavaScript 与 Rust 和 WebAssembly 集成
    偶然一次机会,接触了Rust的代码。当时想给团队小伙伴做演示,发现自己并不能在移动端按照文档生成演示demo。我就想,要是Rust代码能转化成JavaScript就好了。结果一搜,还真有。下面整理成文档,分享给大家。为大家解决问题,多提供一种思路、方式、方法。 一、分享的目的:▪由Rust、We......
  • Java开发学习day06--方法
    随笔记录学习之路,如有侵权请联系我删除,学习内容主要来自黑马 1.方法概述1.1方法的概念:方法(method)是程序中最小的执行单元注意:    方法必须先创建才可以使用,该过程成为方法定义    方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用2.......
  • Java 制作二维码
    最近刷题遇到了java制作二维码的功能pom文件<dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version></dependency><dependency>......
  • springboot巡更系统--10192(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程
    摘 要目前,在日常生活中随处可见社区巡更人员对特定的区域进行定期或者不定期的安全巡查管理。包括勤前训示、必到点签到、巡更路线等,各项勤务工作均由巡更员本人在执勤日志本中手工填写,且工作点分散,不利于统一监管,存在信息化手段不足,勤务信息获取、输入复杂,监管信息不能实时......