1028 人口普查(JAVA)

╰半橙微兮° 2023-09-28 18:04 136阅读 0赞

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。

这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。

输入格式:

输入在第一行给出正整数 N,取值在(0,105];随后 N 行,每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目保证最年长和最年轻的人没有并列。

输出格式:

在一行中顺序输出有效生日的个数、最年长人和最年轻人的姓名,其间以空格分隔。

输入样例:

  1. 5
  2. John 2001/05/12
  3. Tom 1814/09/06
  4. Ann 2121/01/30
  5. James 1814/09/05
  6. Steve 1967/11/20

输出样例:

  1. 3 Tom John

代码实现:

  1. import java.io.*;
  2. /**
  3. * @author yx
  4. * @date 2022-07-15 19:26
  5. */
  6. public class Main {
  7. static PrintWriter out=new PrintWriter(System.out);
  8. static BufferedReader ins=new BufferedReader(new InputStreamReader(System.in));
  9. static StreamTokenizer in=new StreamTokenizer(ins);
  10. public static void main(String[] args) throws IOException {
  11. in.nextToken();
  12. int n=(int) in.nval;
  13. int count=0;
  14. String ma="1814/09/06";
  15. String mi="2014/09/06";
  16. String max="1814/09/06";
  17. String min="2014/09/06";
  18. String min_name="";
  19. String max_name="";
  20. for (int i = 0; i < n; i++) {
  21. String[] split=ins.readLine().split("\\s");
  22. if(split[1].compareTo(ma)>=0&&split[1].compareTo(mi)<=0){
  23. count++;
  24. if(split[1].compareTo(min)<0){
  25. min=split[1];
  26. max_name=split[0];
  27. }
  28. if(split[1].compareTo(max)>0){
  29. max=split[1];
  30. min_name=split[0];
  31. }
  32. }
  33. }
  34. out.print(count);
  35. //判断是否有符合条件的日期
  36. if(count!=0) {
  37. out.println(" " + max_name + " " + min_name);
  38. }
  39. out.flush();
  40. }
  41. }

发表评论

表情:
评论列表 (有 0 条评论,136人围观)

还没有评论,来说两句吧...

相关阅读

    相关 1028 人口普查JAVA

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁

    相关 1028 人口普查 (Python实现)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁

    相关 1028. 人口普查(20)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老

    相关 1028 人口普查

    题目描述   某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。   这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知

    相关 PAT-B 1028. 人口普查(20)

    某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的