两个java小练习

网上看到的一个小练习,自己写了一个,但是时间限制并不符合,并且貌似还有些小问题,暂时放在这儿,代码格式什么的也不太规范。

1、班级排名
时间限制: 1000ms 内存限制: 65536kB 
描述 
信息科学技术学院年终评定讲学金,需要对整个年级的学生按照平均分数进行排名.
要求:根据输入的学号和平均成绩,按照平均成绩降序输出学号
如果平均成绩相同,按照输入的顺序输出。 
输入 
第一行为N,表示输入N位学生的信息,接着的N行输入学生信息,1<=N<=500
学生信息的格式为:学号 平均成绩
学号的长度小于10,平均成绩在1-100之间. 
输出 
按照平均成绩降序输出学号,如果平均成绩相同,按照输入顺序输出 

package Some_Demos;
import java.io.*;
import java.util.*;

public class IO_Demo {
    //static Map<Integer,Float> scoreNo = new TreeMap<Integer,Float>();
    static Map<Integer,Float> scoreNo = new HashMap<Integer,Float>();
    static List<Float> score = new ArrayList<Float>();
    static List<Integer> no = new ArrayList<Integer>();
    public static void sortList(List<Float> flist, List<Integer> ilist){
        int length = flist.size();
        if(length <= 0)
            return;
        for(int i=0; i<length; i++){
            for(int j=i+1;j<length;j++){
                float iTemp = flist.get(i);
                float jTemp = flist.get(j);
                float floatTemp;

                int ilistTemp1 = ilist.get(i);
                int jlistTemp2 = ilist.get(j);
                int intTemp;
                if(iTemp<jTemp){
                    floatTemp = iTemp;
                    flist.set(i, jTemp);
                    flist.set(j, floatTemp);

                    //intTemp = ilistTemp1;
                    ilist.set(i, jlistTemp2);
                    ilist.set(j, ilistTemp1);
                }
            }
        }
    }
    public static void main(String[] args){
        long startTime = System.nanoTime();
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String strTemp = br.readLine();
            String[] strArray;
            while(strTemp!=null){
                //System.out.println(strTemp);
                if(strTemp.equals("bye"))
                    break;
                strArray = strTemp.split(" ");
                //System.out.println(strArray[0] + "-" + strArray[1]);
                scoreNo.put(Integer.parseInt(strArray[0]), Float.parseFloat(strArray[1]));
                score.add(Float.parseFloat(strArray[1]));
                no.add(Integer.parseInt(strArray[0]));
                strTemp=br.readLine();
            }
            System.out.println(scoreNo);
            System.out.println(score);
            sortList(score,no);
            System.out.println(score);
            System.out.println(no);

        }catch(IOException e){
            System.out.println(e);
        }catch(Exception e){
            System.out.println(e);
        }
        long endTime = System.nanoTime();
        System.out.println("程序执行共用时:" + ((endTime-startTime)/1000000) + " ms");
    }
}

2、十六进制转十进制
时间限制: 1000ms内存限制: 65536kB
描述
将十六进制数转换成十进制数
输入
第一行有一个整数T,表示共有T组数据
接下来T行,每一行为一个16进制无符号正整数,位数不超过8位,数中的a-f均为大写字母,数前没有多余的0
输出
输出共T行,每一行是一组数据的十进制表示,数字前不得有多余的0。
十进制数小于2^31

package Some_Demos;
import java.io.*;

public class HexToBin {
//    public void hexTobin(int[] array){
//        int length = array.length;
//        for(int j=0; j<length; j++){
//
//        }
//    }
//
    public static void main(String[] args){
        long startTime = System.nanoTime();
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String strNum = br.readLine();
            int count = Integer.parseInt(strNum);
            if(count <= 0)
            {
                System.out.println("输入的数字个数应大于0!");
                return;
            }
            int[] hex = new int[count];
            String strTemp;
            for(int i=0; i<count; i++){
                strTemp = br.readLine();
                hex[i] = Integer.valueOf(strTemp, 16);
                //System.out.println(Integer.valueOf(strTemp,16));
            }
            //hexTobin(hex);
            //System.out.println(hex);

            for(int j=0; j<count; j++)
                System.out.println(hex[j]);

        }catch(NumberFormatException e){
            System.out.println(e);
        }catch(IOException e){
            System.out.println(e);
        }catch(Exception e){
            System.out.println(e);
        }

        long endTime = System.nanoTime();
        System.out.println("程序执行共用时:" + ((endTime-startTime)/1000000) + " ms");
    }
}
时间: 2024-07-30 10:12:07

两个java小练习的相关文章

两个java小程序

写了java才知道,python写起来真是爽啊 import java.util.Scanner; class SortNu { public static void main(String[] args) { Scanner s = new Scanner(System.in); //获取三个数字 System.out.print("请输入第一个整数:"); int num1 = s.nextInt(); System.out.print("请输入第二个整数:")

java计算两日期间隔小时或分钟

public static void main(String[] args) {        try {            long min = dateDiff("2014-05-27 13:30:00","2014-05-27 13:00:00","yyyy-MM-dd HH:mm:ss");            System.out.println("---------相隔分钟数: "+min);        

基于Bluemix快速构建部署一款Java小程序——微博影响力分析器

一.前言 近年来IT界风云际会,各种新概念如大数据.云平台.虚拟化等,如雨后春笋般层出不穷.而云平台,可以说是近些年来引领时代新潮的边缘概念之一,各大厂商竞相推出各种云产品,抢占云市场高地.近期,IT百年老厂IBM也推出了其花费重金打造的基于CloudFoundry开放标准的云平台Bluemix.本文就旨在从一位普通Java开发者角度,尝鲜Bluemix云平台及其提供的Cloudant服务,快速构建并部署一款Java小程序"微博影响力分析器". 二."微博影响力分析器&quo

《Java小游戏实现》:坦克大战(续一)

<Java小游戏实现>:坦克大战(续一) 上篇博文(http://blog.csdn.net/u010412719/article/details/51712663)只介绍到了能够控制一个坦克在4个方向上移动就结束了,今天就在此基础上继续完成一个一个的小功能. 完成的功能:根据键盘的按键控制一个坦克在8个方向上移动 要完成这个功能,我们要做一下几个事情 1.记录下键盘的按键情况,即要重写键盘按下和抬起的监听事件 采用4个boolean变量来记录,按下为true,抬起为false 具体实现的代码

Java小游戏之打飞机(二)

这篇文章本应昨天写的,可是真打算写的时候,CSDN博客维护,导致拖到了今天: 在上篇文章Java小游戏之打飞机(一)中已经详细介绍了该游戏的基本架构和需求分析,今天就详细写一写具体每个类的实现: 1)PlaneGameFrame类    ----游戏的主界面以及一些具体的飞机动作方法.碰撞检测等 代码: package plane; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java

自家用的java小总结(2.4):类的知识的查漏补缺(内部类)

1 2      首先,这是一篇自己用的文章,不对读者承担任何责任,所以,要带着批判的眼光来看下面的文章   1 发现了,得加上输出结果,怕自己出错,~~   这篇文章说了些什么? 这文章是我近来8.6号来在编程思想上打的代码,从0~200页的源码接近到在这里,下文正是总结这0~200页的的知识,涉及到接口,内部类.初始化,数值计算的一些细节.此文章不会一下子写完,可能隔一天可能再补下来.因为代码确实有点多.. 注意 1 我的注释不一定正确(不过各小标题和代码一定是正确的,因为是书本上的原话,但

java 小知识

1.JDK就是Java Development Kit.是 Java 语言的软件开发工具包(SDK),简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境.基本上每个学java的 人都会先在机器上装一个JDK,那他都包含哪几部分呢?让我们看一下JDK的安装目录.在目录下面有六个文件夹.一个src类库源码压缩包.和其他几个声明文件.其中,真正在运 行java时起作用的是以下四个文件夹:bin.include.lib. jre.现在我们可以看出这样一个关系,JDK包含JRE

《Java小游戏实现》:坦克大战

<Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个小功能的添加,最后直至完成整个游戏的开发. 第一步:写一个界面 public class TankClient extends JFrame{ public static void main(String[] args) { new TankClient().launchFrame(); } public v

java小游戏代码

一. 需求分析 曾几何时,游戏是海洛因的代名词,让人与玩物丧志联系在一起,一度遭到社会反感和家长抵制.但是,随着互联网的发展,和游戏潜在好处被发现,游戏的价值开始逐渐被社会认可,人们开始接受.认识和了解游戏带来的诸多好处. 现在学生的课业负担重,娱乐时间少,人际交往少,烦恼和压力也因此相应增加.其实玩游戏不仅帮助学生调节情绪,还可以锻炼与提高他们的反应能力和手脑的快速配合能力,同时帮助他们了解电脑和网络知识等,可谓是一举多得.据调查显示,经常玩游戏的学生思维活跃.善于表达.情绪乐观,解决问题时会