Круговой массив
Надо написать программу, которая выводит путь, по которому, двигаясь интервалом длины m по заданному массиву, концом будет являться первый элемент. Началом одного интервала является конец предыдущего, а путь - массив из начальных элементов полученных интервалов. Круговой массив: 12345. При длине обхода 4 получаем интервалы: 1234, 4512, 2345, 5123, 3451. Полученный путь: 14253.
{
public static void main(String[] args) {
int[] circle = new int []{1, 2, 3, 4, 5, 6};
Scanner scan = new Scanner(System.in);
System.out.println("Введите количество интервалов");
int m = scan.nextInt();
System.out.println("Введите длину интервалов");
int n = scan.nextInt();
for(int i : circle) {
System.out.println(circle[i]);
}
}
}
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
Используйте оператор остатка от деления %
На каждом шаге считаете новый индекс как
index = (index + step) % len;
где len - длина массива.
Заметьте, что все элементы удастся обойти только в том случае, если len и step - взаимно простые числа (их НОД==1)