Рубрики

Вывести все возможные комбинации r элементов в заданном массиве размера n

Учитывая массив размера n, сгенерируйте и распечатайте все возможные комбинации r элементов в массиве. Например, если входной массив равен {1, 2, 3, 4}, а r равен 2, то выходное значение должно быть {1, 2}, {1, 3}, {1, 4}, {2, 3}, { 2, 4} и {3, 4}.

Ниже приведены два способа сделать это.

Способ 1 (исправить элементы и повторить)
Мы создаем временный массив «data []», который хранит все выходные данные один за другим. Идея состоит в том, чтобы начать с первого индекса (index = 0) в data [], один за другим исправить элементы в этом индексе и повторить оставшиеся индексы. Пусть входной массив равен {1, 2, 3, 4, 5} и r равен 3. Сначала мы фиксируем 1 в индексе 0 в data [], затем возвращаемся к оставшимся индексам, затем фиксируем 2 в индексе 0 и повторяем. Наконец, мы исправляем 3 и возвращаемся к остальным индексам. Когда число элементов в data [] становится равным r (размер комбинации), мы печатаем data [].

Следующая диаграмма показывает дерево рекурсии для того же самого ввода.

Ниже приводится реализация вышеуказанного подхода.

C ++

// C ++ программа для печати всех комбинаций
// размера r в массиве размера n
#include<bits/stdc++.h> 

using namespace std; 

  

void combinationUtil(int arr[], int data[], 

                    int start, int end, 

                    int index, int r); 

  
// Основная функция, которая печатает
// все комбинации размера r
// в arr [] размера n. Эта функция
// в основном использует комбинацию Util ()

void printCombination(int arr[], int n, int r) 

    // временный массив для хранения

    // все комбинации по одному

    int data[r]; 

  

    // Распечатать всю комбинацию используя

    // временный массив 'data []'

    combinationUtil(arr, data, 0, n-1, 0, r); 

  
/ * arr [] ---> Массив ввода
data [] ---> Временный массив для
сохранить текущую комбинацию
начало и конец ---> смотреть и
Конечные индексы в arr []
index ---> Текущий индекс в данных []
r ---> Размер комбинации для печати * /

void combinationUtil(int arr[], int data[], 

                    int start, int end, 

                    int index, int r) 

    // Текущая комбинация готова

    // чтобы быть напечатанным, напечатайте это

    if (index == r) 

    

        for (int j = 0; j < r; j++) 

            cout << data[j] << " "

        cout << endl; 

        return

    

  

    // заменить индекс на все возможное

    // элементы. Условие "end-i + 1> = r-index"

    // обеспечивает включение одного элемента

    // при индексе составим комбинацию с

    // оставшиеся элементы на оставшихся позициях

    for (int i = start; i <= end && 

        end - i + 1 >= r - index; i++) 

    

        data[index] = arr[i]; 

        combinationUtil(arr, data, i+1, 

                        end, index+1, r); 

    

  
// Код драйвера

int main() 

    int arr[] = {1, 2, 3, 4, 5}; 

    int r = 3; 

    int n = sizeof(arr)/sizeof(arr[0]); 

    printCombination(arr, n, r); 

  
// Этот код предоставлен rathbhupendra

С

// Программа для печати всей комбинации размера r в массиве размера n
#include <stdio.h>

void combinationUtil(int arr[], int data[], int start, int end, 

                     int index, int r);

  
// Основная функция, которая печатает все комбинации размера r
// в arr [] размера n. Эта функция в основном использует комбинацию Util ()

void printCombination(int arr[], int n, int r)

{

    // Временный массив для хранения всех комбинаций один за другим

    int data[r];

  

    // Распечатать всю комбинацию с использованием временного массива data []

    combinationUtil(arr, data, 0, n-1, 0, r);

}

  
/ * arr [] ---> Массив ввода

   data [] ---> Временный массив для хранения текущей комбинации

   start & end ---> Стартовые и конечные индексы в arr []

   index ---> Текущий индекс в данных []

   r ---> Размер комбинации для печати * /

void combinationUtil(int arr[], int data[], int start, int end,

                     int index, int r)

{

    // Текущая комбинация готова к печати, распечатайте ее

    if (index == r)

    {

        for (int j=0; j<r; j++)

            printf("%d ", data[j]);

        printf("\n");

        return;

    }

  

    // заменить индекс всеми возможными элементами. Условие

    // «end-i + 1> = r-index» обеспечивает включение одного элемента

    // при индексе составим комбинацию с остальными элементами

    // на оставшихся позициях

    for (int i=start; i<=end && end-i+1 >= r-index; i++)

    {

        data[index] = arr[i];

        combinationUtil(arr, data, i+1, end, index+1, r);

    }

}

  
// Программа драйвера для проверки вышеуказанных функций

int main()

{

    int arr[] = {1, 2, 3, 4, 5};

    int r = 3;

    int n = sizeof(arr)/sizeof(arr[0]);

    printCombination(arr, n, r);

}

Джава

// Java-программа для печати всей комбинации размера r в массиве размера n

import java.io.*;

  

class Combination {

  

    / * arr [] ---> Массив ввода

    data [] ---> Временный массив для хранения текущей комбинации

    start & end ---> Стартовые и конечные индексы в arr []

    index ---> Текущий индекс в данных []

    r ---> Размер комбинации для печати * /

    static void combinationUtil(int arr[], int data[], int start,

                                int end, int index, int r)

    {

        // Текущая комбинация готова к печати, распечатайте ее

        if (index == r)

        {

            for (int j=0; j<r; j++)

                System.out.print(data[j]+" ");

            System.out.println("");

            return;

        }

  

        // заменить индекс всеми возможными элементами. Условие

        // «end-i + 1> = r-index» обеспечивает включение одного элемента

        // при индексе составим комбинацию с остальными элементами

        // на оставшихся позициях

        for (int i=start; i<=end && end-i+1 >= r-index; i++)

        {

            data[index] = arr[i];

            combinationUtil(arr, data, i+1, end, index+1, r);

        }

    }

  

    // Основная функция, которая печатает все комбинации размера r

    // в arr [] размера n. Эта функция в основном использует комбинацию Util ()

    static void printCombination(int arr[], int n, int r)

    {

        // Временный массив для хранения всех комбинаций один за другим

        int data[]=new int[r];

  

        // Распечатать всю комбинацию с использованием временного массива data []

        combinationUtil(arr, data, 0, n-1, 0, r);

    }

  

    / * Функция драйвера для проверки вышеуказанной функции * /

    public static void main (String[] args) {

        int arr[] = {1, 2, 3, 4, 5};

        int r = 3;

        int n = arr.length;

        printCombination(arr, n, r);

    }

}

  
/ * Этот код предоставлен Девешом Агравалом * /

python3

# Программа для печати всех комбинаций
# размера r в массиве размера n

  
# Основная функция, которая печатает
# все комбинации размера r в
# arr [] размера n. Эта функция
# в основном использует комбинацию Util ()

def printCombination(arr, n, r):

      

    # Временный массив для

    # хранить все комбинации

    # по одному

    data = [0]*r;

  

    # Распечатать всю комбинацию

    # использование временного массива data []

    combinationUtil(arr, data, 0

                    n - 1, 0, r);

  
# arr [] ---> Массив ввода
# data [] ---> Временный массив для
# сохранить текущую комбинацию
# start & end ---> Просмотр и окончание
# индексы в arr []
# index ---> Текущий индекс в данных []
# r ---> Размер комбинации
# для печати

def combinationUtil(arr, data, start, 

                    end, index, r):

                          

    # Текущая комбинация готова

    # чтобы быть напечатанным, напечатайте это

    if (index == r):

        for j in range(r):

            print(data[j], end = " ");

        print();

        return;

  

    # заменить индекс на все

    # возможные элементы.

    # условие "end-i + 1> =

    # r-index "гарантирует, что

    # включая один элемент в

    # index составит комбинацию

    # с остальными элементами в

    # оставшиеся позиции

    i = start; 

    while(i <= end and end - i + 1 >= r - index):

        data[index] = arr[i];

        combinationUtil(arr, data, i + 1

                        end, index + 1, r);

        i += 1;

  
Код водителя

arr = [1, 2, 3, 4, 5];

r = 3;

n = len(arr);

printCombination(arr, n, r);

  
# Этот код предоставлен mits

C #

// C # программа для печати всех
// комбинация размера r
// в массиве размером n

using System;

  

class GFG

{

    / * arr [] ---> Массив ввода

    data [] ---> Временный массив для

                сохранить текущую комбинацию

    начало и конец ---> Смотрение и окончание

                     индексы в обр []

    index ---> Текущий индекс в данных []

    r ---> Размер комбинации

            быть напечатанным * /

    static void combinationUtil(int []arr, int []data, 

                                int start, int end, 

                                int index, int r)

    {

        // Текущая комбинация

        // готов к печати,

        // распечатать

        if (index == r)

        {

            for (int j = 0; j < r; j++)

                Console.Write(data[j] + " ");

            Console.WriteLine("");

            return;

        }

  

        // заменить индекс на все

        // возможные элементы.

        // условие "end-i + 1> =

        // r-index "обеспечивает

        // включая один элемент

        // в индексе сделаем

        // комбинация с оставшимися

        // элементы на оставшихся позициях

        for (int i = start; i <= end && 

                  end - i + 1 >= r - index; i++)

        {

            data[index] = arr[i];

            combinationUtil(arr, data, i + 1, 

                            end, index + 1, r);

        }

    }

  

    // Основная функция, которая печатает

    // все комбинации размера r

    // в arr [] размера n. Эта

    // функция в основном использует комбинацию Util ()

    static void printCombination(int []arr, 

                                 int n, int r)

    {

        // временный массив для хранения

        // все комбинации по одному

        int []data = new int[r];

  

        // Распечатать всю комбинацию

        // используя временный массив data []

        combinationUtil(arr, data, 0,

                        n - 1, 0, r);

    }

  

    // Код драйвера

    static public void Main ()

    {

        int []arr = {1, 2, 3, 4, 5};

        int r = 3;

        int n = arr.Length;

        printCombination(arr, n, r);

    }

}

  
// Этот код предоставлен m_kit

PHP

<?php
// Программа для печати всех
// комбинация размера r
// в массиве размером n

  
// Основная функция, которая
// печатает все комбинации
// размера r в arr [] из
// размер n. Эта функция
// в основном использует комбинацию Util ()

function printCombination($arr

                          $n, $r)

{

    // Временный массив для

    // сохранить всю комбинацию

    // по одному

    $data = array();

  

    // Распечатать всю комбинацию

    // используя временный массив data []

    combinationUtil($arr, $data, 0, 

                    $n - 1, 0, $r);

}

  
/ * arr [] ---> Массив ввода
data [] ---> Временный массив для

            сохранить текущую комбинацию

начало и конец ---> Смотрение и окончание

                 индексы в обр []

index ---> Текущий индекс в данных []
r ---> Размер комбинации

       быть напечатанным * /

function combinationUtil($arr, $data, $start

                         $end, $index, $r)

                  
{

    // Текущая комбинация готова

    // чтобы быть напечатанным, напечатайте это

    if ($index == $r)

    {

        for ($j = 0; $j < $r; $j++)

            echo $data[$j];

        echo "\n";

        return;

    }

  

    // заменить индекс на все

    // возможные элементы.

    // условие "end-i + 1> =

    // r-index "обеспечивает

    // включая один элемент в

    // индекс составит комбинацию

    // с остальными элементами в

    // оставшиеся позиции

    for ($i = $start

         $i <= $end && 

         $end - $i + 1 >= $r - $index; $i++)

    {

        $data[$index] = $arr[$i];

        combinationUtil($arr, $data, $i + 1, 

                        $end, $index + 1, $r);

    }

}

  
// Код драйвера

$arr = array(1, 2, 3, 4, 5);

$r = 3;

$n = sizeof($arr);

printCombination($arr, $n, $r);

  
// Этот код предоставлен ajit
?>


Выход:

1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

Как обрабатывать дубликаты?
Обратите внимание, что вышеупомянутый метод не обрабатывает дубликаты. Например, если входной массив равен {1, 2, 1} и r равен 2, программа выводит {1, 2} и {2, 1} в виде двух разных комбинаций. Мы можем избежать дубликатов, добавив следующие две вещи в приведенный выше код.
1) Добавить код для сортировки массива перед вызовом комбинации Util () в printCombination ()
2) Добавьте следующие строки в конце цикла for в комбинации Util ()

        // Since the elements are sorted, all occurrences of an element
        // must be together
        while (arr[i] == arr[i+1])
             i++; 

Смотрите это для реализации, которая обрабатывает дубликаты.

Способ 2 (включить и исключить каждый элемент)
Как и в предыдущем методе, мы создаем временный массив данных []. Идея здесь аналогична проблеме суммы подмножеств . Мы по очереди рассматриваем каждый элемент входного массива и повторяем для двух случаев:

1) Элемент включен в текущую комбинацию (мы помещаем элемент в data [] и увеличиваем следующий доступный индекс в data [])
2) Элемент исключен в текущей комбинации (мы не ставим элемент и не меняем индекс)

Когда число элементов в data [] становится равным r (размер комбинации), мы печатаем его.

Этот метод в основном основан на идентичности Паскаля , то есть n c r = n-1 c r + n-1 c r-1

Ниже приводится реализация метода 2.

C ++

// C ++ Программа для печати всех комбинаций
// размер r в массиве размера n
#include <bits/stdc++.h>

using namespace std;

void combinationUtil(int arr[], int n, int r, 

                    int index, int data[], int i); 

  
// Основная функция, которая печатает все
// комбинации размера r в arr []
// размером n. Эта функция в основном
// использует сочетаниеUtil ()

void printCombination(int arr[], int n, int r) 

    // временный массив для хранения

    // все комбинации по одному

    int data[r]; 

  

    // Распечатать всю комбинацию используя

    // временный массив 'data []'

    combinationUtil(arr, n, r, 0, data, 0); 

  
/ * arr [] ---> Массив ввода
n ---> Размер входного массива
r ---> Размер комбинации для печати
index ---> Текущий индекс в данных []
data [] ---> Временный массив для хранения текущей комбинации
i ---> индекс текущего элемента в arr [] * /

void combinationUtil(int arr[], int n, int r, 

                    int index, int data[], int i) 

    // Текущая комбинация готова, распечатайте ее

    if (index == r) 

    

        for (int j = 0; j < r; j++) 

            cout << data[j] << " "

        cout << endl; 

        return

    

  

    // Когда больше нет элементов для вставки в data []

    if (i >= n) 

        return

  

    // текущий включен, поставить следующий в следующем месте

    data[index] = arr[i]; 

    combinationUtil(arr, n, r, index + 1, data, i + 1); 

  

    // текущий исключен, замените его следующим (Обратите внимание, что

    // i + 1 пройдено, но индекс не изменился)

    combinationUtil(arr, n, r, index, data, i+1); 

  
// Код драйвера

int main() 

    int arr[] = {1, 2, 3, 4, 5}; 

    int r = 3; 

    int n = sizeof(arr)/sizeof(arr[0]); 

    printCombination(arr, n, r); 

    return 0; 

  
// Это код, предоставленный rathbhupendra

С

// Программа для печати всей комбинации размера r в массиве размера n
#include<stdio.h>

void combinationUtil(int arr[],int n,int r,int index,int data[],int i);

  
// Основная функция, которая печатает все комбинации размера r
// в arr [] размера n. Эта функция в основном использует комбинацию Util ()

void printCombination(int arr[], int n, int r)

{

    // Временный массив для хранения всех комбинаций один за другим

    int data[r];

  

    // Распечатать всю комбинацию с использованием временного массива data []

    combinationUtil(arr, n, r, 0, data, 0);

}

  
/ * arr [] ---> Массив ввода

   n ---> Размер входного массива

   r ---> Размер комбинации для печати

   index ---> Текущий индекс в данных []

   data [] ---> Временный массив для хранения текущей комбинации

   i ---> индекс текущего элемента в arr [] * /

void combinationUtil(int arr[], int n, int r, int index, int data[], int i)

{

    // Текущая комбинация готова, распечатайте ее

    if (index == r)

    {

        for (int j=0; j<r; j++)

            printf("%d ",data[j]);

        printf("\n");

        return;

    }

  

    // Когда больше нет элементов для вставки в data []

    if (i >= n)

        return;

  

    // текущий включен, поставить следующий в следующем месте

    data[index] = arr[i];

    combinationUtil(arr, n, r, index+1, data, i+1);

  

    // текущий исключен, замените его следующим (Обратите внимание, что

    // i + 1 пройдено, но индекс не изменился)

    combinationUtil(arr, n, r, index, data, i+1);

}

  
// Программа драйвера для проверки вышеуказанных функций

int main()

{

    int arr[] = {1, 2, 3, 4, 5};

    int r = 3;

    int n = sizeof(arr)/sizeof(arr[0]);

    printCombination(arr, n, r);

    return 0;

}

Джава

// Java-программа для печати всей комбинации размера r в массиве размера n

import java.io.*;

  

class Combination {

  

    / * arr [] ---> Массив ввода

    data [] ---> Временный массив для хранения текущей комбинации

    start & end ---> Стартовые и конечные индексы в arr []

    index ---> Текущий индекс в данных []

    r ---> Размер комбинации для печати * /

    static void combinationUtil(int arr[], int n, int r, int index,

                                int data[], int i)

    {

        // Текущая комбинация готова к печати, распечатайте ее

        if (index == r)

        {

            for (int j=0; j<r; j++)

                System.out.print(data[j]+" ");

            System.out.println("");

        return;

        }

  

        // Когда больше нет элементов для вставки в data []

        if (i >= n)

        return;

  

        // текущий включен, поставить следующий в следующем месте

        data[index] = arr[i];

        combinationUtil(arr, n, r, index+1, data, i+1);

  

        // текущий исключен, замените его следующим (Обратите внимание, что

        // i + 1 пройдено, но индекс не изменился)

        combinationUtil(arr, n, r, index, data, i+1);

    }

  

    // Основная функция, которая печатает все комбинации размера r

    // в arr [] размера n. Эта функция в основном использует комбинацию Util ()

    static void printCombination(int arr[], int n, int r)

    {

        // Временный массив для хранения всех комбинаций один за другим

        int data[]=new int[r];

  

        // Распечатать всю комбинацию с использованием временного массива data []

        combinationUtil(arr, n, r, 0, data, 0);

    }

  

    / * Функция драйвера для проверки вышеуказанной функции * /

    public static void main (String[] args) {

        int arr[] = {1, 2, 3, 4, 5};

        int r = 3;

        int n = arr.length;

        printCombination(arr, n, r);

    }

}
/ * Этот код предоставлен Девешом Агравалом * /

Python 3

# Программа для печати всех комбинаций
# размера r в массиве размера n

  
# Основная функция, которая печатает все
# комбинации размера r в arr [] из
# размер n. Эта функция в основном использует
# сочетаниеUtil ()

def printCombination(arr, n, r):

  

    # Временный массив для хранения

    # все комбинации по одному

    data = [0] * r

  

    # Распечатать всю комбинацию используя

    # временной массив 'data []'

    combinationUtil(arr, n, r, 0, data, 0)

  
'' 'arr [] ---> Input Array
n ---> Размер входного массива
r ---> Размер комбинации для печати
index ---> Текущий индекс в данных []
data [] ---> Временный массив для хранения

            текущая комбинация

i ---> индекс текущего элемента в arr [] '' '

def combinationUtil(arr, n, r, index, data, i):

  

    # Текущая комбинация готова,

    # распечатать

    if (index == r):

        for j in range(r):

            print(data[j], end = " ")

        print()

        return

  

    # Когда больше нет элементов

    # там, чтобы вставить данные []

    if (i >= n):

        return

  

    # ток включен, поставлен

    # следующий в следующем месте

    data[index] = arr[i]

    combinationUtil(arr, n, r, index + 1

                    data, i + 1)

  

    # ток исключен, замените его

    # со следующим (Обратите внимание, что i + 1 пройдено,

    # но индекс не изменился)

    combinationUtil(arr, n, r, index, 

                    data, i + 1)

  
Код водителя

if __name__ == "__main__":

    arr = [1, 2, 3, 4, 5]

    r = 3

    n = len(arr)

    printCombination(arr, n, r)

  
# Этот код добавлен
# by ChitraNayal

C #

// C # программа для печати всех
// комбинация размера r
// в массиве размером n

using System;

  

class GFG

{

      

    / * arr [] ---> Массив ввода

    data [] ---> Временный массив для

                сохранить текущую комбинацию

    начало и конец ---> Смотрение и окончание

                     индексы в обр []

    index ---> Текущий индекс в данных []

    r ---> Размер комбинации

           быть напечатанным * /

    static void combinationUtil(int []arr, int n, 

                                int r, int index,

                                int []data, int i)

    {

        // Текущая комбинация готова

        // чтобы быть напечатанным, напечатайте это

        if (index == r)

        {

            for (int j = 0; j < r; j++)

                Console.Write(data[j] + " ");

                Console.WriteLine("");

            return;

        }

  

        // когда больше нет элементов

        // туда, чтобы вставить данные []

        if (i >= n)

        return;

  

        // ток включен, поставлен

        // следующий в следующем месте

        data[index] = arr[i];

        combinationUtil(arr, n, r, 

                        index + 1, data, i + 1);

  

        // текущий исключен, заменить

        // это со следующим (Обратите внимание, что

        // я + 1 пропущен, но индекс

        // не изменяется)

        combinationUtil(arr, n, r, index,

                        data, i + 1);

    }

  

    // Основная функция, которая печатает

    // все комбинации размера r

    // в arr [] размера n. Эта

    // функция в основном использует комбинацию Util ()

    static void printCombination(int []arr, 

                                 int n, int r)

    {

        // временный массив для хранения

        // все комбинации по одному

        int []data = new int[r];

  

        // Распечатать всю комбинацию

        // используя временный массив data []

        combinationUtil(arr, n, r, 0, data, 0);

    }

  

    // Код драйвера

    static public void Main ()

    {

        int []arr = {1, 2, 3, 4, 5};

        int r = 3;

        int n = arr.Length;

        printCombination(arr, n, r);

    }

}

  
// Этот код предоставлен ajit

PHP

<?php
// Программа для печати всех
// комбинация размера r
// в массиве размером n

  
// Основная функция, которая печатает
// все комбинации размера r в
// arr [] размера n. Эта функция
// в основном использует комбинацию Util ()

function printCombination($arr, $n, $r)

{

    // временный массив для хранения

    // все комбинации по одному

    $data = Array();

  

    // Распечатать всю комбинацию используя

    // временный массив 'data []'

    combinationUtil($arr, $n, $r,

                    0, $data, 0);

}

  
/ * arr [] ---> Массив ввода
n ---> Размер входного массива
r ---> Размер комбинации

       быть напечатанным

index ---> Текущий индекс в данных []
data [] ---> Временный массив для хранения

            текущая комбинация

i ---> индекс текущего элемента в arr [] * /

function combinationUtil($arr, $n, $r

                         $index, $data, $i)

{

    // Текущая комбинация

    // готово, распечатай

    if ($index == $r)

    {

        for ($j = 0; $j < $r; $j++)

            echo $data[$j], " ";

        echo "\n";

        return;

    }

  

    // когда больше нет элементов

    // туда, чтобы вставить данные []

    if ($i >= $n)

        return;

  

    // ток включен, поставлен

    // следующий в следующем месте

    $data[$index] = $arr[$i];

    combinationUtil($arr, $n, $r

                    $index + 1, 

                    $data, $i + 1);

  

    // текущий исключен, заменить

    // это со следующим (Обратите внимание, что я + 1

    // пройдено, но индекс не изменен)

    combinationUtil($arr, $n, $r

                    $index, $data, $i + 1);

}

  
// Код драйвера

$arr = array(1, 2, 3, 4, 5);

$r = 3;

$n = sizeof($arr);

printCombination($arr, $n, $r);

  
// Этот код предоставлен ajit
?>


Выход :

1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

Как обрабатывать дубликаты в методе 2?
Как и в методе 1, мы можем использовать две вещи для обработки дубликатов.
1) Добавить код для сортировки массива перед вызовом комбинации Util () в printCombination ()
2) Добавьте следующие строки между двумя рекурсивными вызовами комбинации Util () в комбинации Util ()

        // Since the elements are sorted, all occurrences of an element
        // must be together
        while (arr[i] == arr[i+1])
             i++; 

Смотрите это для реализации, которая обрабатывает дубликаты.

Ниже приведен еще один подход на основе DFS для решения этой проблемы.
Сделайте все комбинации размера k

Эта статья предоставлена Батишем . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Вывести все возможные комбинации r элементов в заданном массиве размера n

0.00 (0%) 0 votes