0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 43
1

Нужно заменить большое количество циклов for

10.07.2013, 19:23. Показов 1205. Ответов 1
Метки нет (Все метки)

Подскажите пожалуйста.
Встала такая проблема: нужно заменить большое количество циклов
for двумя или вообще как-то нужно заменить хоть чем, но чтобы мы
могли регулировать их количество.

Например:
нам нужно перебрать все возможные варианты наборов
слов из алфавита.
например алфавит: a b
Количество наборов по 4 символа:
a a a a
a a a b
a a b a
a a b b
a b a a
и.т.д

т.е
for (int i = 0; i<2; i++){
for (int j=0; j<2; j++){
for (int k = 0; k<2; k++){
for (nadoel_for = 0; nadoel_for<2; nadoel_for++){
cout<<alph[i]+alph[j]+alph[k]+alph[nadoel_for];
}
}
}
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2013, 19:23
Ответы с готовыми решениями:

Необходимо заменить большое количество знаков в документе
Здравствуйте, мне необходимо заменить большое количество знаков в документе, только при условии не...

Можно ли заменить большое количество форм одной формой, но с вкладками
Можно ли как-то заменить большое количество форм одной формой, но с вкладками. Если да, то как это...

Найти самое большое количество повторяющихся элементов и заменить первые 2 буквы
пользователь вводит строку и надо в ней найти максимальное количество символов подряд, которые...

Нужно скачать большое количество файлов которые лежат в определенной структуре каталогов
Нужно скачать большое количество файлов которые лежат в определенной структуре каталогов. Мне нужно...

1
Эксперт С++
4264 / 2238 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.07.2013, 21:08 2
Лучший ответ Сообщение было отмечено mano как решение

Решение

такие задачи красиво решаются с помощью рекурсии:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
const int N = 4; 
 
void Print(int *a, int n)
{
   for(int i = 0; i < n; ++i)
      std::cout << a[i] << " "; 
   std::cout << std::endl;  
}
 
void F(int *a, int i, int n)
{
   if (i >= 0)
   {
      a[i] = 0;
      F(a, i - 1, n);
      a[i] = 1;
      F(a, i - 1, n);
   }
   else Print(a, n);
}
 
int main()
{
   int a[N];
   F(a, N - 1, N);
   return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.07.2013, 21:08
Помогаю со студенческими работами здесь

Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв. То есть со слов &quot;aab&quot;...

Слишком большое число циклов for
Здравствуйте! Столкнулся со следующей проблемой: появилась необходимость расчета большого числа...

Создать метод, в котором одномерный массив. И заменить самое большое число и самое большое число по модулю на число 0
Создать метод, в котором одномерный массив. И заменить самое большое число и самое большое число по...

Если эти числа равны, заменить их на 0, если нет - меньшое заменить большим, а большое оставить без изменения
Дано 2 целых числа, каждое из низ не больше 2*10^9 по модулю. Если эти числа равны, заменить их на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru