P5728 旗鼓相当的对手

题意:

         现有 N(N1000) 名同学参加了期末考试,并且获得了每名同学的信息:语文、数学、英语成绩(均为不超过 150 的自然数)。

        如果某对学生 <i,j> 的每一科成绩的分差都不大于 5,且总分分差不大于 10,那么这对学生就是“旗鼓相当的对手”。

        现在想知道这些同学中,有几对“旗鼓相当的对手”?同样一个人可能会和其他好几名同学结对。

输入格式:

       第一行一个正整数 N

      接下来 N 行,每行三个整数,其中第 ii 行表示第 ii 名同学的语文、数学、英语成绩。最先读入的同学编号为 1。

输出格式:

     输出一个个整数,表示“旗鼓相当的对手”的对数。

输入样例:                                           输出样例:

           3                                                                          2

90 90 90
85 95 90
80 100 91
提示:先创建四个数组,储存三科成绩和总成绩,因为成绩不一定是整数,所以要用Integer.parseInt(in.nextLine())转换为一个基本数据类型,接着就是输入一个正整数表示有几行,
.split函数是具有拆分的作用 之后进行条件判断,输出统计值就好了
import java.util.*;
public class Main{
public static void main(String[] args) {
        // TODO 自动生成的方法存根
     Scanner in=new Scanner(System.in);
     int num=Integer.parseInt(in.nextLine());//转化为一个基本数据类型
     int []Chinese=new int[num];
     int []math=new int[num];
     int []English=new int[num];
     int []grade=new int [num];
     for(int i=0;i<num;i++)
     {
         String a=in.nextLine();//输入一个数
         String []arr=a.split(" ");//split函数对数组拆分作用
         Chinese[i]=Integer.parseInt(arr[0]);
         math[i]=Integer.parseInt(arr[1]);
         English[i]=Integer.parseInt(arr[2]);
         grade[i]=Chinese[i]+math[i]+English[i];
     }
     int count=0;//统计旗鼓相当的对手的人数
     for(int i=0;i<num;i++)
     {
         for(int j=i+1;j<num;j++)
         {
             //将每位同学的成绩进行相减比较
             if(Math.abs(Chinese[i]-Chinese[j])<=5 &&
                Math.abs(math[i]-math[j])<=5 &&
                Math.abs(English[i]-English[j])<=5 &&
                Math.abs(grade[i]-grade[j])<=10)
                {
                 count++;
                }                                 
         }
     }
     System.out.println(count);
  }    
}
 
 


猜你喜欢

转载自www.cnblogs.com/coke-/p/12641924.html