Алгоритм для всех изменений K элементы для чисел 1 в N в C#

Напишите программу, которая читала бы целые числа N и K консоли, и напечатай все изменения элементов K чисел в интервале [1... N]. Пример: N = 3, K = 2  {1, 1}, {1, 2}, {1, 3}, {2, 1}, {2, 2}, {2, 3}, {3, 1}, {3, 2}, {3, 3}.

-3
задан 01.12.2019, 04:15
1 ответ

я нашел решение здесь: https://www.geeksforgeeks.org/print-all-combinations-of-given-length /

Надеялся, что оно ты функционирует, Привет!

using System;

namespace Tests
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("First Test");
            int[] set1 = { 1, 2, 3 };
            int k = 3;
            printAllKLength(set1, k);

            Console.WriteLine("\nSecond Test");
            int[] set2 = { 1, 2, 3, 4 };
            k = 2;
            printAllKLength(set2, k);

            Console.ReadLine();

        }

        // The method that prints all  
        // possible strings of length k. 
        // It is mainly a wrapper over  
        // recursive function printAllKLengthRec() 
        static void printAllKLength(int[] set, int k)
        {
            int n = set.Length;
            printAllKLengthRec(set, "", n, k);
        }

        // The main recursive method 
        // to print all possible  
        // strings of length k 
        static void printAllKLengthRec(int[] set,
                                       String prefix,
                                       int n, int k)
        {

            // Base case: k is 0, 
            // print prefix 
            if (k == 0)
            {
                Console.WriteLine(prefix);
                return;
            }

            // One by one add all characters  
            // from set and recursively  
            // call for k equals to k-1 
            for (int i = 0; i < n; ++i)
            {

                // Next character of input added 
                String newPrefix = prefix + set[i];

                // k is decreased, because  
                // we have added a new character 
                printAllKLengthRec(set, newPrefix,
                                        n, k - 1);
            }
        }

    }
}
0
ответ дан 01.12.2019, 14:37
  • 1
    Тебе благодарен за опору, но пожалуйста избегают отвечать на вопросы плохо выдвинутые, что не ведутся CГіmo, спрашивать , так как они заканчиваются закрывшие и только podrí чтобы приносить отрицательные обеты – Aprendiz 01.12.2019, 06:13