Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
mano
0 / 0 / 0
Регистрация: 11.04.2013
Сообщений: 42
10.07.2013, 19:23     Нужно заменить большое количество циклов for #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];
}
}
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.07.2013, 19:23     Нужно заменить большое количество циклов for
Посмотрите здесь:

Нужно определить количество слов в строке. Заменить в ней все пробелы на табуляции C++
C++ Как записать в переменную большое количество текста?
Большое количество вызовов констр-ра и дестр-ра C++
Нужно переделать из двух циклов for в один цикл for C++
C++ Файлы. С файла нужно удалить слово, в котором самое большое количество РАЗНЫХ букв
C++ Большое количество строк
С++: подсчитать количество знаков и вывести самое большое значение C++
C++ Найти в массиве самое большое число и заменить его на 9

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
10.07.2013, 21:08     Нужно заменить большое количество циклов for #2
такие задачи красиво решаются с помощью рекурсии:
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;
}
Yandex
Объявления
10.07.2013, 21:08     Нужно заменить большое количество циклов for
Ответ Создать тему
Опции темы

Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru