0
点赞
收藏
分享

微信扫一扫

L1-056 猜数字 (20 分) java

f12b11374cba 2022-03-27 阅读 48

题目

一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
在这里插入图片描述

分析

  • 用一个数组1装名字
  • 用一个数组2装数字
  • 再用一个数组3装数字
  • 排序数组3
  • 利用数组3的最小值,得到要输出的i;

代码

import java.util.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
    public static void main(String[]args) throws IOException{
        BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
        int n= Integer.parseInt(sc.readLine());
        String[]name = new String[n];
        int []number = new int[n];
        int sum = 0;
        int []num = new int[n];
        int []num1 = new int [n];
        for(int i=0;i<n;i++){
            String []s = sc.readLine().split(" ");
            name[i] = s[0];
            number[i] = Integer.parseInt(s[1]);
            sum = sum + number[i];
        }
        int avg = sum/(n*2);

        for(int i=0;i<n;i++){
            num[i] = Math.abs(number[i]-avg);
            num1[i] = Math.abs(number[i]-avg);
        }
        Arrays.sort(num);
        for(int i=0;i<n;i++){
            if(num[0]==num1[i]){
                System.out.print(avg+" "+name[i]);
                break;
            }
        }
    }
}
举报

相关推荐

0 条评论