2018/12/08 L1-043 阅览室 Java

考察了四舍五入的功能, 还有将题目转化成代码的能力, 代码如下:   这题是用数组实现的, 那么, 有没有可能用容器来实现

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws Exception{
        // S为借书 E为还书
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int day = Integer.parseInt(br.readLine());
        for(int i=0; i<day; i++) {
            int id=-1;
            double time=0;
            int num=0;  // 当天总借书的次数.
            int[] mint = new int[1001];
            boolean[] flag = new boolean[1001];
            while(id!=0) {
                char a;
                int h,m;
                String[] str=br.readLine().split(" ");
                id = Integer.parseInt(str[0]);
                a = str[1].charAt(0);
                String[] bridge = str[2].split(":");
                h = Integer.parseInt(bridge[0]);
                m = Integer.parseInt(bridge[1]);
                if(id == 0) {
                    break;
                } else if(a == 'S') {
                    mint[id] = h*60 + m;
                    flag[id] = true;
                } else if(a == 'E') {
                    if(flag[id]) {  // 说明这本书是借过了的, 如果为false表示是误输入, 不进行计算.
                        flag[id] = false;
                        time += h*60+m-mint[id];
                        mint[id] = 0;
                        num++;
                    }
                }
            }
            int t = 0;
            if(num!=0) {
                time /= num;
            }
            t = (int)(time + 0.5);  // 一条代码实现了四舍五入的功能, 如果小数部分小于0.5, 那么加上0.5后, 使用int转换后仍会被摸掉
            System.out.println(num+" "+t);
        }
        
    }

}

 

posted @ 2018-12-08 19:05  HHZZHH  阅读(341)  评论(0编辑  收藏  举报