时间限制
400 ms
内存限制
64 MB
题目描述:
一群人坐在一起,每人猜一个 100 以内的数,谁的数字最接近大家平均数的一半就赢。本题就要求你找出其中的赢家。
输入格式:
输入在第一行给出一个正整数N(≤
1
0
4
10^{4}
104)。随后 N 行,每行给出一个玩家的名字(由不超过8个英文字母组成的字符串)和其猜的正整数(≤ 100)。
输出格式:
在一行中顺序输出:大家平均数的一半(只输出整数部分)、赢家的名字,其间以空格分隔。题目保证赢家是唯一的。
输入样例:
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
输出样例:
22 Amy
给定一些人猜的数字 看 谁的数字 最接近大家平均数的一半
输出这个平均数的一半 且输出最靠近这个数的人
emmmmmmm
先求和 取其平均数的一半
再看谁更接近
输出即可
import java.io.*;
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException
{
int n = ini();
String name[] = new String[n + 10];
int shu[] = new int[n + 10];
int ans = 0;
for (int i = 1; i <= n; i++)
{
name[i] = ins();
shu[i] = ini();
ans += shu[i];
}
double ping = ans * 1.0 / n;
ping /= 2;
double min = 100;
int pos = 0;
for (int i = 1; i <= n; i++)
{
double x = Math.abs(shu[i] - ping);
if (min > x)
{
min = x;
pos = i;
}
}
out.println((int) ping + " " + name[pos]);
out.flush();
out.close();
}
static StreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out = new PrintWriter(System.out);
static int ini() throws IOException
{
sc.nextToken();
return (int) sc.nval;
}
static String ins() throws IOException
{
sc.nextToken();
return sc.sval;
}
}
如果有说错的 或者 不懂的 尽管提 嘻嘻
一起进步!!!