Создание всех подмножеств рекурсивно без использования массива на языке Си
Мы получаем от пользователя неотрицательное целое число n и должны вывести все подмножества множества ({1,2,3,...,n}).
например, для n=3 мы должны вывести:
{1 , 2 , 3}
{1 , 2}
{1 , 3}
{1}
{2 , 3}
{2}
{3}
{}
,s являются необязательными, и последовательность может быть напечатана без какой-либо запятой. (например, {1 2 3}) Я должен добавить, что последовательность подмножеств должна быть точно такой же, как в примере. То есть сначала подмножества, имеющие 1, затем подмножества, имеющие 2 и .... Сначала должно быть напечатано самое длинное подмножество.
Что я уже пробовал:
Я вижу много кодов в Интернете, которые решают эту проблему с помощью массивов или с помощью битового массива, указывающего, используем ли мы число или нет. Проблема в том, что в этом вопросе нам не разрешается использовать-любой - тип массива или другие структуры данных ,такие как вектор и т. д. Даже использование поведения массива чего - то вроде string полностью запрещено. Она должна быть решена только с помощью рекурсии.
Нам также не разрешается использовать какие-либо дополнительные функции. Например, если мы пишем его с помощью C, нам разрешено использовать только stdio.h или для C++, только <iostream> разрешена и никакая другая библиотека.
Я не знаю, как это сделать без каких-либо массивов. Как проверить, какой номер он должен напечатать, и в то же время управлять {}.