Задача по алгоритмам Ӏ Java Syntax: 5 уровень, 12 лекция

  • 8
  • Недоступна
Все классические алгоритмы уже давным-давно запрограммированы. Тем не менее, задачки на алгоритмы — очень ценны. Хотя бы тем, что, развивают мышление программиста. В алгоритме поиска максимума ничего сложного и нет. Так что не медлим: пишем программу, в которой задаем положительное целое число n, затем вводим n чисел и находим максимальное среди них.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (510)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Александра Зенькович 6 уровень, Минск
вчера, 21:15
посмотрела решение, которое предлагает JavaRush.... увидела массивы... и пожалуй это будет первая задача, оставленная на "потом"
Рамиль Ибрагимов 7 уровень, Алматы
среда, 15:44
Откровенно говоря постановка дрянная. задача решается с одной попытки требуется ввести с клавиатуры число которое будет счётчиком следующих вводов, число должно быть больше 0. далее введённые числа могут быть как отрицательные так и положительные и как раз из этого набора следует выбрать максимальное т.е. ввёл сначало число 5. Значит 5 раз нужно будет ввести числа. 3 значит 3 раза и тд. небольшая подсказка
if (value > maximum || maximum == 0) maximum = value;
Алексей 9 уровень, Москва
10 октября, 20:10
1. Объявляем интовую переменную n и парсим её, чтобы прочитать бафридером 2. Пишем условие if, если n меньше или равно 0 просто возвращаемся на исходную, т.е. просто return 3. максимум также парсим и читаем 4. в цикле отчёт начинаем с n, до тех пор пока i больше 1, шагаем назад i-- 5.в теле цикла, максимуму присваиваем значение метода max класса Math (в параметрах сравниваем читаемое значение и сам maximum 6. За циклом выводим maximum в соуте
ZaGa Music 12 уровень, Москва
10 октября, 10:22
Помогите с последним пунктом
Андрей 7 уровень, Минск
15 октября, 16:21
при N<=0 у вас программа не должна ничего вывести в консоль вообще. В вашем примере все равно пытается посчитать максимум, но так как у вас в списке нет элементов, то получается исключение. Вообще, вы используете метод класса коллекций и если перейти в него через Ctrl+ЛКМ, то жавадок там прямым текстом пишет @throws NoSuchElementException if the collection is empty. то есть перед использованием этого метода нужно проверять коллекцию на null и на количество элементов
Максим 9 уровень, Москва
24 сентября, 20:19
получилось так: максимум сразу приравнял к "0" объявил число Н иф Н больше равно 1 скобка максимум = вводимому числу(парсинт ридлайн) - тем самым получаем максимальное число больше отрицательного и пропадает необходимость в дальнейшем цикле, ну и присваиваем максимум первому числу иф Н больше 1 скобка цикл фор (счетчик 1, счетчик меньше Н, счетчик++ ) объявил число А максимум = Мат.макс (максимум, А) скобка скобка соут - после первого ИФ - решает последнее условие скобка скобка
Liudas P 10 уровень, Kaišiadorys
23 сентября, 19:20
мне помагло int maximum = -2147483648; Сам ни как непридумал, здал с 5 паза.🤬
Алексей 20 уровень, Новосибирск
24 сентября, 12:41
Что у тебя с клавиатурой? Глаза выколоть можно от таких сообщений.
Максим 9 уровень, Москва
24 сентября, 20:19
мне кажется это плохое решение
Liudas P 10 уровень, Kaišiadorys
25 сентября, 16:48
извините за ошибки но я не руски
Алексей 20 уровень, Новосибирск
25 сентября, 19:41
а, тогда вполне неплохо написано 😄
Илья 7 уровень, Самара
20 сентября, 19:00
скоро скоро массивы будут
Aleksei 9 уровень
20 сентября, 10:52
Интересная задача) Спасибо! Уверен, что её можно решить, используя только пройденный материал, но я почему-то сразу ухватился за массив и пошел этой дорогой) Через ArrayList и Collections. Узнал много нового)
Илья 7 уровень, Самара
20 сентября, 13:57
привет,обьясни как решать эту задачу?алгоритмы это вообще жесть
Aleksei 9 уровень
20 сентября, 15:10
Приветствую! Расписать "дословно" решение не могу - это противоречит правилам. Но могу описать шаги, которые делал я. (Повторюсь: задачу можно решить, используя только пройденный материал) 1. Вводим новый массив, используя ArrayList (idea сама подключит библиотеку или предложит подключить). Можно спросить Google насчет массивов. 2. Запускаем поток (BufferedReader). 3. Вводим число n. 4. Дальше условие <если n больше 0> (в условии задачи об этом написано: считывает с консоли число N, которое должно быть больше 0). 5. В условии инициализируем счетчик с начальным значением 0. 6. И запускаем цикл с параметром <пока счетчик меньше n>. 7. Внутри цикла инициализируем любую переменную (например, number) и вводим числа (думаю, понятно, что мы можем ввести только n-ое количество чисел). 8. Также внутри цикла "записываем" каждое введенное число в наш массив. 9. Также внутри цикла увеличиваем наш счетчик на 1. 10. Как только введенное нами количество чисел станет равным n, цикл завершится. 11. Вне цикла мы делаем сортировку нашего массива при помощи Collections (idea сама подключит библиотеку или предложит подключить). Как это сделать - поможет Google. 12. Выводим на экран максимальное число в массиве (через size). Как сказал выше - полного решения дать не могу, поэтому написал про Google. Потребовалось минуть 10, чтобы решить описанным способом. Всем удачи!
Илья 7 уровень, Самара
20 сентября, 18:49
ты конечно молодец,красиво решил,но массивы мы еще не проходили
Виктор 9 уровень, Санкт-Петербург Expert
16 сентября, 19:44
Опять я перемудрил с Arrays.sort... 1. Объявил int maximum БЕЗ инициализации. 2. Задал переменную N, которая читает ввод с клавиатуры. 3. Если N больше 0, то... 4. Объявил массив, размер которого соответствует N — int[] input = new int[N]; 5. Запустил цикл for (int i = 0; i < N; ++i) 6. Каждая итерация цикла последовательно записывает в массив число с клавиатуры — input[i] = Integer.parseInt(reader.readLine()); 7. После цикла for сортируем массив с помощью Arrays.sort. 8. Присваиваем переменной maximum уже отсортированный массив, в котором его последняя ячейка содержит максимальное число: maximum = input[input.length-1]; 9. Выводим на экран результат. 10. Всё получится! -- Если кому-нибудь нужна помощь в учёбе, то я создал телеграм канал, в котором, по ходу изучения Java, делюсь со всеми книгами для скачивания и другими полезными материалами, есть чат для обмена знаниями и моральной поддержки : ) Давайте учиться вместе: @LetsCodeIt А ещё у меня есть личный канал в телеге «Дневник вкатывальщика в программирование с нуля»: @SefoNotasi
Bek-Sultan 6 уровень, Бишкек
14 октября, 17:47
Почему input.length - 1 ?
Bek-Sultan 6 уровень, Бишкек
14 октября, 17:49
Решение отличное, только не понял длина массива если 6 потом - 1 и распечатай по идее после сортировки 5-ю по логике, а не 6
Bek-Sultan 6 уровень, Бишкек
14 октября, 17:52
Понял, отсчет начинается с нуля, но length печатает длину начинаю с 1, спасибо за решение
Виктор 9 уровень, Санкт-Петербург Expert
15 октября, 16:19
Не успел вовремя ответить 😭 Всё верно, счёт элементов массива начинается с 0, поэтому чтобы не вылететь за пределы массива мы берём его длину и вычитаем единицу, чтобы попасть на последний элемент внутри массива.
Vadim Zakirov 10 уровень, Челябинск
16 сентября, 14:00
Блин все как то кратко решилb, я думал думал, решил через массив пойти, в итоге вышло на 37 строк, коротко по блокам: 1. создал сканер, вписываемое число которого присваивается к длине объявленного массива. 2. условие если ввели 0 или меньше то пустота, иначе, далее по программе. 3. присваиваю через for введенные значения через buffer элементам массива все массив заполнен введенными значениями, теперь надо искать максимальное из них 4. ищу также через for максимальное число массива 5. присваиваю его к maximum 6. вывожу максимум (зато сам, не подглядывал))