Почему бы вам не попробовать это?
import static java.lang.Integer.*;
import java.io.*;
/*
Task about algorithms
Write a program that:
1. reads a number N (must be greater than 0) from the console
2. reads N numbers from the console
3. Displays the maximum of the N entered numbers.
Requirements:
1. The program should read the numbers from the keyboard.
2. The program must display a number on the screen.
3. The class must have a public static void main method.
4. Don't add new methods to the Solution class.
5. The program should display the maximum of the N entered numbers.
6. The program should not display anything if N is less than or equal to 0.
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int maximum = Integer.MIN_VALUE;
int N = Integer.parseInt(reader.readLine());
int i;
int N2 = 0 ;
for (i = 0; i != N; i++){
N2 = Integer.parseInt(reader.readLine());
maximum = Math.max(N2,maximum);
}
System.out.println(maximum);
}
}
Идея состоит в том, чтобы изначально установить значение максимума как очень маленькое значение, чтобы мы могли сравнить и получить Наибольшее значение из набора значений. На каждой итерации новое число считывается и сравнивается с существующим значением максимума. Если оно выше maximum
, оно заменяет максимальное. Вот что я пробовал в качестве входных данных
5
4
8
9
1
2
Output
9
5 - это число целых чисел, которые мы вводим, поэтому сначала давайте предположим, что очень небольшое значение для maximum
(-2134 ). Когда он видит первое значение (4), сравнивает его с текущим максимумом (4> -2134), он присваивает значение maximum
как 4. Итерация продолжается, и максимальное значение равно 9, при сравнении со значениями 1 и 2, значение максимума остается неизменным. Надеюсь, это поможет!