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

Сотня вложенных циклов - C++

Восстановить пароль Регистрация
 
LVV
56 / 56 / 3
Регистрация: 15.02.2010
Сообщений: 239
13.01.2011, 10:52     Сотня вложенных циклов #1
Подскажите, уважаемые, как можно упростить (рекурсивно, или как-то ещё) следующий код:
C++
1
2
3
4
5
6
7
8
9
10
int k=100;
for (int i1=1; i1<=k; i1++){
   cout<< i1;
for (int i2=i1+1; i2<=k; i2++){
   cout << i1*i2;
for (int i3=i2+1; i3<=k; i3++){
//................................. и т.д.
for (int i100=i99+1; i100<=k; i100++){
   cout << i1*i2*i3;// и так далее ...*i99*i100;
}}}}} // и так дплее }}}}}}}}}}....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2011, 10:52     Сотня вложенных циклов
Посмотрите здесь:

C++ Использование цикла while и вложенных циклов
Программирование вложенных циклов C++
C++ Произвольное количество вложенных циклов + рекурсия
C++ Приоритеты вложенных циклов
как сделать неизвестное количество вложенных циклов C++
Программированиие алгоритмов со структурой вложенных циклов C++
Распараллеливание вложенных циклов с AMP C++
Упрощение вложенных циклов C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,390
13.01.2011, 13:05     Сотня вложенных циклов #2
Для K = 2 и K = 3 считает верно, для K = 100 проверяй сам :
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <string.h>
 
#define K 100
// Массив счетчиков:
int i[K];
 
int product(size_t);
 
void loops(size_t);
 
int main()
{
    for(i[0] = 0; i[0] < K; ++i[0])
    {
        printf("%d\n", product(0));
        loops(1);
    }
    return 0;
}
 
// Произведение (n + 1) идущих подряд счетчиков, начиная с первого по счету:
int product(size_t n)
{
    int result = 1;
    size_t j;
    for(j = 0; j <= n; ++j)
    // Прибавляем к каждому счетчику единицу, потому что они у нас начинаются с нуля
        result *= (i[j] + 1); 
       
    return result;
}
 
// Рекурсивные циклы:
void loops(size_t n)
{
    if(n == K)
        return;
        
    for(i[n] = i[n - 1] + 1; i[n] < K; ++i[n])
    {
        printf("%d\n", product(n));
        loops(n + 1);
    }
}
Yandex
Объявления
13.01.2011, 13:05     Сотня вложенных циклов
Ответ Создать тему
Опции темы

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