0
点赞
收藏
分享

微信扫一扫

【练习题】财富排行榜

题目描述 很多信息学选手,在很多领域做出了非常大的贡献,为国家科技的发展出了很多力,有不少还是开领了科技的先河。叶老师这边带过竞赛的学生也有不少考上了清华北大,他们将会继续深造,以便发挥出自己的才能。在这些选手实现为科技进步贡献的同时,他们也实现了自我价值。比如: 清华大学毕业的楼教主 身价百亿 浙江理工大学毕业的王学集、陈燎罕 IPO 900亿 浙江理工大学毕业的章同学 毕业2年 年薪150万 … 现在叶老师想统计下这些同学的身价、行业发展潜力,并希望你帮忙从高到低排个序,排序规则: 1 按照身价从高到低排序 2 如果身价相同,按照行业发展潜力从高到低排序 3 如果身价、行业发展潜力都相同,按照输入的序号从小到大排序

输入 第一行输入一个整数n ( 1 <= n <= 100) 之后n行,每行输入姓名(最多不超过20个字符)、身价(整数)、行业发展潜力(整数) 输出 输出n行,为按规则排序后的n个,每行输出序号、姓名、身价、行业发展潜力、未来身价(未来身价=身价*行业发展潜力)中间用空格隔开 样例输入 Copy 3 loujiaozhu 100 12 wangxueji 900 3 chenliaohan 900 3 样例输出 Copy 2 wangxueji 900 3 2700 3 chenliaohan 900 3 2700 1 loujiaozhu 100 12 1200

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main{
    static class Per{
        public Per(int no, String name, int pr,int f){
            this.no = no;
            this.name=name;
            this.pr=pr;
            this.f=f;
        }
        public int no;
        public String name;
        public int pr;
        public int f;
    }

    public static void main(String args[]){
        int n;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        List<Per> list = new LinkedList<Per>();

        for(int i=1;i<n+1;i++){
            Per per = new Per(i,(String)sc.next(),sc.nextInt(),sc.nextInt());
            list.add(per);
        }
         list.sort((p1,p2) -> {
             if(p1.pr > p2.pr || (p1.pr == p2.pr && p1.f > p2.f) || (p1.pr == p2.pr && p1.f == p2.f && p1.no < p2.no)){
                 return -1;
             }
             return 1;

         });
        for(Per p : list){
            System.out.println(p.no + " " +p.name + " " + p.pr + " " +p.f + " " + p.pr*p.f);
        }
    }
}

举报

相关推荐

0 条评论