zoukankan      html  css  js  c++  java
  • SH2018笔试题之成长值问题

    一、题目

         详见代码

    二、代码

    import java.util.Scanner;
    
    /**
     * 3
     * 1 1 5 10
     * 2 3 4
     * 1 4 6 -5
     */
    public class main4 {
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
    
            while (in.hasNext()) {
                //输入行数row
                int row = in.nextInt();
    
                //输入成长值
                String[] strArr = new String[row];
                String a = in.nextLine();
                for (int i = 0; i < strArr.length; i++) {
                    strArr[i] = in.nextLine();
                }
    
                //test
                System.out.println(strArr[0]);
                System.out.println(strArr[1]);
                System.out.println(strArr[2]);
                //
    
                //计算成长值
                int mLast = 0; //每日成长值开始时间
                int nLast = 0; //每日成长值结束时间
                int valueLast = 0;//每日成长值
                int mNext = 0; //每日成长值开始时间
                int nNext = 0; //每日成长值结束时间
                int valueNext = 0;//每日成长值
                int value2Sum = 0; //任务成长值累计值
                int value1Sum = 0; //每日成长值累计值
                int count = 0; //统计每日成长值的数据有多少条
                int sum = 0; //总成长值
    
                for (int i = 0; i < strArr.length; i++) {
                    String[] strArr1 = strArr[i].split(" ");
    
                    //test
                    for (int j = 0; j < strArr1.length; j++) {
                        System.out.println(strArr1[j]);
                    }
                    //
    
    
                    if (Integer.parseInt(strArr1[0]) == 2) {
                        value2Sum = value2Sum + Integer.parseInt(strArr1[2]);
                    }
    
    
                    if (count != 0) {
                        if (Integer.parseInt(strArr1[0]) == 1) {
                            mNext = Integer.parseInt(strArr1[1]);
                            nNext = Integer.parseInt(strArr1[2]);
                            valueNext = Integer.parseInt(strArr1[3]);
                            value1Sum = value1Sum + valueNext * (nNext - mNext + 1);
                            if (valueNext >= valueLast && nLast >= mNext) {
                                value1Sum = value1Sum - (Math.abs(nLast - mNext) + 1) * valueLast;
                            }
                            if (valueNext < valueLast && nLast >= mNext) {
                                value1Sum = value1Sum - (Math.abs(nLast - mNext) + 1) * valueNext;
                            }
                            valueLast = valueNext;
                            nLast = nNext;
                            count++;
                        }
    
                    }
    
                    if (count == 0) {
                        if (Integer.parseInt(strArr1[0]) == 1) {
                            mLast = Integer.parseInt(strArr1[1]);
                            nLast = Integer.parseInt(strArr1[2]);
                            valueLast = Integer.parseInt(strArr1[3]);
                            value1Sum = valueLast * (nLast - mLast + 1);
                        }
                        count++;
                    }
                }
    
                sum = value1Sum + value2Sum;
                System.out.println(sum);
    
            }
            in.close();
        }
    }
    

    -------------------------------------------

    答案仅供参考

  • 相关阅读:
    javaDoc 注释规范
    [阿里云] 如何 开放云主机 非80 端口?
    [Go] 跨平台文件系统监控工具 fsnotify 应用举例
    如何利用 jQuery 修改 css 中带有 !important 的样式属性?
    code.google.com/p/log4go 下载失败
    [Go] ok 判断 汇总
    [Go] 编码规范
    《Go语言实战》摘录:7.3 并发模式
    《Go语言实战》摘录:7.2 并发模式
    《Go语言实战》摘录:7.1 并发模式
  • 原文地址:https://www.cnblogs.com/hezhiyao/p/8858569.html
Copyright © 2011-2022 走看看