import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(
System.in );
int N = scanner.nextInt(); // Длина цепочки
int K = scanner.nextInt(); // Максимальное значение xi
int[] chain = new int[N]; // Массив для хранения цепочки
generateChains(chain, 0, K); // Начинаем генерацию цепочек с первого элемента (индекс 0)
}
// Рекурсивная функция для генерации цепочек
public static void generateChains(int[] chain, int index, int K) {
if (index == chain.length) {
// Если достигли конца цепочки, выводим ее
for (int i = 0; i < chain.length; i++) {
System.out.print(chain[i] + " ");
}
System.out.println();
} else {
// Генерируем числа от 1 до K для текущего элемента цепочки
for (int i = 1; i <= K; i++) {
chain[index] = i; // Записываем число в цепочку
generateChains(chain, index + 1, K); // Рекурсивно генерируем следующий элемент
}
}
}
}
Этот код сначала считывает значения N и K, затем использует рекурсивную функцию generateChains для генерации всех возможных цепочек заданной длины N, где каждый элемент цепочки находится в интервале от 1 до K. Как только цепочка достигает заданной длины, она выводится на экран.
Например, для ввода 2 3, программа выведет все возможные цепочки длиной 2 с числами от 1 до 3, как показано в вашем примере вывода.