Круговой массив

Надо написать программу, которая выводит путь, по которому, двигаясь интервалом длины 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)

→ Ссылка