Мы ее сегодня разбирали с ребятами из 3-го губернского лицея и я вывешиваю ее текст для всех, кому захочется ее решить.
Задача непростая и в смысле логики, и в техническом отношении.
Назовем "движением" следующее действие: переход из данной ячейки массива в иную ячейку на величину значения, записанного в данной ячейке.
Положительное значение означает переход в ячейку в направлении конца массива (если в ячейке №5 записано значение 3, то переходить надо в ячейку №8), отрицательное -- в направлении начала (если в ячейке №5 записано значение 3, то переходить надо в ячейку №2), значение 0 -- оставаться на месте.
--------
Напишите метод, который получает в качестве параметра одномерный массив целых чисел (отрицательных, положительных и нулей). Запрещается дважды использовать одну и ту же ячейку. Метод выполняет движение по ячейкам массива, начиная с первой (ячейки №0) и прекращает работу в одном из следующих случаев:
Задача непростая и в смысле логики, и в техническом отношении.
Назовем "движением" следующее действие: переход из данной ячейки массива в иную ячейку на величину значения, записанного в данной ячейке.
Положительное значение означает переход в ячейку в направлении конца массива (если в ячейке №5 записано значение 3, то переходить надо в ячейку №8), отрицательное -- в направлении начала (если в ячейке №5 записано значение 3, то переходить надо в ячейку №2), значение 0 -- оставаться на месте.
--------
Напишите метод, который получает в качестве параметра одномерный массив целых чисел (отрицательных, положительных и нулей). Запрещается дважды использовать одну и ту же ячейку. Метод выполняет движение по ячейкам массива, начиная с первой (ячейки №0) и прекращает работу в одном из следующих случаев:
- пройдены все ячейки массива;
- переход приводит в "выпадению из массива со стороны начала";
- переход приводит в "выпадению из массива со стороны конца";
- начинается движение по "замкнутому кругу";
- начинается "топтание на месте".
Метод должен сообщать, по какой причине он завершил работу.
