Задача по алгоритмам

  • 3
  • Недоступна
Все классические алгоритмы уже давным-давно запрограммированы. Тем не менее, задачки на алгоритмы — очень ценны. Хотя бы тем, что, развивают мышление программиста. В алгоритме поиска максимума ничего сложного и нет. Так что не медлим: пишем программу, в которой задаем положительное целое число n, затем вводим n чисел и находим максимальное среди них.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (198)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Evgeny Pitonov7 уровень, Москва
пятница, 22:12
Попытался сделать немного по-своему, но валидатор вежливо пояснил мне что я не прав. Поделюсь своим методом решения, может кому в будущем пригодится. 1. Создал ArrayList numbers = new ArrayList(); 2. Создал цикл While, в начале цикла всегда присваиваю считанное число к переменной number 3. Проверяю if что он больше нуля и если проверку проходим то делаем numbers.add(number), если нет то выходим из цикла While 4. Потом использую метод Collections.sort(numbers) - сортирую список элементов по возрастанию 5. В конце переменной Last присваиваю значение numbers.get(numbers.size()-1) 6. Вывожу P.S. Все равно пришлось решать как все :
Колян Мельников6 уровень, Минск
среда, 20:33
Мдаааа….Пришлось помучаться, но в принципе после нескольких проверок решил. Первое введенное число считываем и присваемваем N, а maximum первое значение присваиваем Integer.MIN_VALUE, один цикл for с условием i < N, и в цикле, после того, как считываем значение, сравниваем его через оператор Math.max. Если честно изначально сбило с толку условие и ,вроде бы как имеется ввиду, что первое введенное число определяет количество следующих вводимых чисел поэтому и должно быть больше нуля, а когда первые пару раз читал, то думал что это просто ряд чисел и первое введенное тоже должно участвовать в сравнении.
Антон7 уровень, Минск
12 июля, 14:59
Разоминула мозг задачка, конечно.... Главное правильно прочитать и понять условие. А то я про отрицательные числа забыл, присвоив изначально maximum = 0. И поэтому при вводе отриц. чисел ответ был всегда 0.
Николай Дудин8 уровень, Йошкар-Ола
среда, 17:17
А я с maximum = 0 сделал, просто в цикле добавил проверку
if (maximum == 0)
    maximum = num;
Это конечно костыль, но лучше я ничего придумать не смог, хотел с null как то, по той же логике, но произошла терка с типами(
Александр8 уровень, Ангарск
12 июля, 08:52
Такие задачи в классе решал, а сейчас затупил (( #Держувкурсе
Phil Balakshin15 уровень, Москва
9 июля, 21:31
Решение достаточно простое: 1) Считываем в переменную maximum число с клавиатуры, которое является первым из N чисел. 2)Далее через цикл  for N-1 раз считываем число с клавиатуры во временную переменную. 3)Сравниваем значение временной переменной со значением переменной maximum, если значение временной переменной больше, то заменяем значение переменной maximum на него. 4)Выводим значение maximum.
Александр9 уровень, Санкт-Петербург
7 июля, 10:28
задача прошла со вложенным while-ом) Рад, что решил чуть по-другому, чем в комментариях
Имамдин Шарабдинов8 уровень, Владикавказ
29 июня, 00:55
if(N > 0){ for(int i = N; i > 0; i--){ считываем числа; тернарный оператор; // сравниваем введенное число со значением которое было ранее задано // в этой же переменной и выбирается максимальное значение. } вывод.на.экран(полученое значение);
Александр8 уровень, Минск
25 июня, 11:39
ядрёная задача, минут 20 голову ломал.....
Александр8 уровень, Минск
25 июня, 11:50
если кому нужна подсказка, то ниже опишу решение... в maximum вводим число или цифру. задаём переменную int temp (в ней я дальше храню максимальное число). если введённое число положительное, то ввожу ещё одну переменную int num, в которой храню вводимые числа. дальше temp = num; это я запоминаю первое из перечня вводимых чисел(для последующего сравнения); дальше в форе от 1 до maximum - 1 num присваиваю вводимые числа и делаю if в нём сравниваю введённое число с моим temp (предыдущим) и если num больше или равен temp то записываю в temp текущее значение num закрываю for и вывожу temp потом пишу в else для первого числа (если maximum не больше нуля) обычное сообщение о некорректном вводе... опять же, всё работает, но не факт, что решение идеально...
barracuda6 уровень, Санкт-Петербург
26 июня, 09:24
Сделал почти так же. Только переменной maximum в самом начале присвоил минимально возможное значение переменной типа int, то есть = -2147483648. А потом сравнивал вводимые значения с переменной maximum.
Александр8 уровень, Минск
27 июня, 09:26
хитро..)
Вадим Роготнев9 уровень, Екатеринбург
22 июня, 03:40
утро вечера мудреннее)) не обошлось без логики, расписанной на листке бумаге и в рамках пройденного курса решил через 1 while, 1 цикл, 4 if.
Ner'Zhul10 уровень
19 июня, 06:57
Гнев, смятение, отрицание, принятие. Вот то что вы испытаете при решении этой задачи. Уже даже представлял себе работодателя, с умным видом выдающего мне подобное задание с кривыми условиями. И как после нескольких попыток и пары часов поиска решения (а решение уже было готово тремя-четырьмя способами) я разбиваю ему об голову клавиатуру и его умный взгляд навсегда становится глупым))))