В общем задание написать круговой массив, которая выводит путь, по которому, двигаясь интервалом длины m по заданному массиву,
концом будет являться первый элемент.
Началом одного интервала является конец предыдущего. Путь - массив из начальных элементов полученных интервалов, на ввод будет даваться m и n. Я написал программу, но она выдает не тот порядок что мне требуется
Должно быть так:
Пример 1:
n = 4, m = 3
Решение:
Круговой массив: 1234. При длине обхода 3 получаем интервалы: 123, 341. Полученный путь: 13.
Пример 2:
n = 5, m = 4
Решение:
Круговой массив: 123456. При длине обхода 4 получаем интервалы: 1234, 4512, 2345, 5123, 3451. Полученный
путь: 14253
А моя программа выдает при n = 5 m = 4 путь: 15432
import java.util.Scanner;
public class CircularArray {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of elements in the array: ");
int n = sc.nextInt();
System.out.print("Enter the interval length: ");
int m = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = i + 1;
}
int current = 0;
System.out.print("Path: ");
for (int i = 0; i < n; i++) {
System.out.print(arr[current]);
current = (current + m) % n;
}
}
}