• 寄快递费用


    Author: Leisureeen

    Time Limit: 100ms

    Memory Limit: 65535KB

    Code Size Limit: 16 KB

    64-bit integer IO format: %lld


    又到了我们毕业生离校的时候了,Leisureeen返校后要给同学寄一些物品,请你来帮忙算一算大约需要多少钱。

    菜鸟驿站给出的计算规则如下:

    每1KG(1公斤)为一个计费重量单位,不足1kg向上取整按1kg计费。一般包裹按重量计费,1KG内按照首重计费,超出1KG部分按照续重计费。当包裹体积较大同时重量较轻时,会按照体积计费。量取物品长(cm)、宽(cm)、高(cm)折算成体积重量(KG),折算公式:体积重量=(长*宽*高)/6000。计算出来的体积重量,会与包裹实际重量进行比较,取较重者为最终计费重量,用以计算运费。

    输入格式:

    第一行是一个正整数N(1<=N<=1000),表示共有N次询问。

    接下来共有N行,每行包含4个正整数,分别是k(1<=k<=100)、b(1<=b<=k)、m(1<=m<=10^6)和v(1<=v<=10^8),k表示首重(元/kg),b表示续重(元/kg),m表示质量(单位:g,本文中所有的重量都特指质量,并非重力),v表示体积(立方厘米)。

    输出格式:

    输出共N行,对每次询问求出寄快递所需要的费用(元),并在一行内输出。

    输入样例:

    4

    8 2 1300 1300

    12 8 13300 8888

    8 2 6500 8640

    15 10 12345 123456

    输出样例:

    10

    116

    20

    215


    我们班的Armstrong用Java写了个程序,当时任务就是真正过样例,暂时不要求ac。

    如下代码是简单修改的(只修改注释和格式,未改实际内容):

    import java.util.Scanner;
    
    public class Test {
    
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                int a = sc.nextInt();
                for(int i = 1;i<=a;i++) {
                    int k = sc.nextInt();
                    int b = sc.nextInt();
                    int m = sc.nextInt();
                    int v = sc.nextInt();
                    int m1 = (m + 999)/1000;
                    if(m > v/6) {
                        int sum = k + (m1-1) * b;
                        System.out.println(sum);
                    }
                    else {
                        int sum1 = k + (v/6000) * b;
                        System.out.println(sum1);
                    }
            }
        }
    }

    显然该代码存在大量bug,不是Armstrong不知道,而是当时未要求ac。

  • 相关阅读:
    GFS读后笔记
    BigTable读后笔记
    恢复系统基础理论
    事务基础理论
    ARIES算法简介
    怎么快速构建自己的C/C++程序?——有关编译、静态链接和SCons
    lua学习笔记
    运行时动态伪造vsprintf的va_list
    11月30日站立会议
    11月29号站立会议
  • 原文地址:https://www.cnblogs.com/leisureeen/p/12882788.html
Copyright © 2020-2023  润新知