题目描述 很多信息学选手,在很多领域做出了非常大的贡献,为国家科技的发展出了很多力,有不少还是开领了科技的先河。叶老师这边带过竞赛的学生也有不少考上了清华北大,他们将会继续深造,以便发挥出自己的才能。在这些选手实现为科技进步贡献的同时,他们也实现了自我价值。比如: 清华大学毕业的楼教主 身价百亿 浙江理工大学毕业的王学集、陈燎罕 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);
}
}
}
标签:练习题,pr,p1,no,int,排行榜,p2,public,财富
From: https://www.cnblogs.com/bigleft/p/18132468