Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
deniro
1

Составление "словаря" рекурсией

17.07.2013, 23:20. Просмотров 428. Ответов 1
Метки нет (Все метки)

Добрый день уважаемые. Полазил на Вашем форуме, - очень много полезной информации. Интересные статьи от самих пользователей. Подчас доступнее, чем в книгах написано.
Ну это лирика. А по сути вот что:
Решил я написать составитель "словаря". Т.е. берутся номера символов аски(буквы и цифры) и составляются все возможные комбинации.

Чтобы не перегружать тут сообщение и не влезать в нюансы представим что у нас есть строка "абвгд".
На выходе я получаю:
а
аб
ав
...
ддд
ну и т.д. (надеюсь понятно).

так вот. написать это "в ручную" оказалось не сложно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int main(int argc, char* argv[])
 
{
 
char testline[]="abcdef";
int i,j,k;
 
for (i=0;i<6;i++) // 6 можно заменить функцией возврата длины строки.
        {
        cout<<testline[i]<<"\n";
        for (j=0;j<6;j++)
                {
                cout<<testline[i]<<testline[j]<<"\n";
                for (k=0;k<6;k++)
                        {
                        cout<<testline[i]<<testline[j]<<testline[k]<<"\n";
                        }
                }
        }
system("pause");
return 0;
}
Т.е. тут я знал что на выходе мне надо максимум 3 символа. и в ручную написал 3 цикла.
Внимание вопрос: Можно ли это все написать рекурсией с любым задаваемым количеством циклов?
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.07.2013, 23:20
Ответы с готовыми решениями:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно"
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;,...

Для каждой строки найти слова, которые не имеют ни одного из букв: "l", "k", "r", "s" i "j"
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование)
Разработать программу с использованием наследования классов, реализующую классы: − воин;...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс"
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об...

1
1089 / 587 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
18.07.2013, 06:05 2
вот накатал на билдере, думаю переделать под консоль труда не составит:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AnsiString testline="abcdef";
AnsiString recur(AnsiString str, int n)
{
AnsiString outstr;
if (n < 1) return str;
for (int i=1;i<=6;i++)
        {
        outstr = recur(str + (AnsiString)testline[i],n-1);
        Form1->Memo1->Lines->Add(outstr);
        }
return "";
}
 
void __fastcall TForm1::ButtonRecurClick(TObject *Sender)
{
Memo1->Text = "";
for(int i=0; i<5; i++) recur("", i);
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.07.2013, 06:05

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления"
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания"
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата"
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в...

Связать отношением наследования классы "Место", "Область", "Город", "Мегаполис"
Для определения иерархии классов связать отношением наследования классы, приведенные в приложении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.