Как бы мог выглядеть код, который КАЖДЫЙ раз введенное число
а) добавлял в массив (пока еще неизвестного размера)
б) сравнивал введенное число с 0 (>0 -ввод след числа/ <=0 дальнейшая работа) // здесь все просто if-else
Суть в том, что массив определял бы свой размер ТОЛЬКО когда было бы введено первое неположительное число (невыполнение условия б).
Третьим шагом сравнение N - последнего введенного (<=0) с N%2==0 - и в зависимости от этого уже вывод получившегося массива в прямом и обратном порядке.
Здесь как раз и возникала бы сложность с предварительным определением количества чисел в массиве.
Единственное, что приходит в голову это перед выводом чисел из массива отбросить все нули (т.к. по условию наши числа >0), а потом уже остаток массива вывести, но как написать подобное пока навыка не хватает.
Заранее спасибо всем, кто захочет помочь!
Kirill Andryukhin
10 уровень
Мастера, есть интересный вопрос на будущее
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
PixtaExpert
3 января 2022, 16:46решение
1) по условию упоминается только число N > 0, другие числа могут быть и отрицательные.
2) вводить числа в массив, пока не определен его размер, ты не сможешь.
как вариант:
a) можешь создавать каждый раз чуть больше массив int[] array = new int [i] ( i++ в каком-нибудь цикле) и копировать из предыдущего массива значения. Arrays.copy
b) Альтернатива массиву есть ArrayList - по сути как раз придумали массив с динамическим размером. ArrayList
Посоветую лучше тебе сделать заметку на твои условия как задача со звездочкой, чтобы позже вернуться к ней.
+2
Kirill Andryukhin
3 января 2022, 16:59
спасибо большое!
Задачу саму я спокойно решил, просто сначала именно так и понял условия.
ArrayList - надо запомнить, пока его не встречал
0
НикитаExpert
3 января 2022, 17:09
javarush не даст тебе его забыть, не беспокойся)))
+1