Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 25.10.2018
Сообщений: 289

Вызов рекурсивной функции

23.09.2019, 18:39. Показов 1623. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! У меня есть вот такой код к задаче. Но я не очень понимаю, как могут вызываться сразу 2 функции. Одновременно или только первая ( rec(k1 + a[x], k2, x + 1); ) вызывается?
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
#include <iostream>
using namespace std;
 
int a[20], n, _min = 99999999;
 
int rec(int k1, int k2, int x)
{
    if (x == n)
    {
        if (_min > abs(k1 - k2))
            _min = abs(k1 - k2);
    }
    else
    {
        rec(k1 + a[x], k2, x + 1);
        rec(k1, k2 + a[x], x + 1);
    }
    return 0;
}
 
int main()
{
    cin >> n; 
    for (int i = 0; i < n; i++)
        cin >> a[i]; 
 
    rec(0, 0, 0);
    cout << _min; 
    return 0;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2019, 18:39
Ответы с готовыми решениями:

Вызов рекурсивной функции в отдельном потоке
Добрый день. Пытаюсь реализовать рекурсивный поиск файлов по заданной маске по каталогам в отдельном потоке. При рекурсивном вызове...

Разработать программу по алгоритму с использование рекурсивной функции и без использования рекурсивной функции
Разработать программу по алгоритму с использование рекурсивной функции и без использования рекурсивной функции.

Написать функции рекурсивной и не рекурсивной реализации алгоритма Евклида нахождения наибольшего общего делителя (НОД) двух натуральных чисел
Написать функции рекурсивной и не рекурсивной реализации алгоритма Евклида нахождения наибольшего общего делителя (НОД) двух натуральных...

1
2735 / 890 / 331
Регистрация: 10.02.2018
Сообщений: 2,112
23.09.2019, 19:42
Лучший ответ Сообщение было отмечено wwmax как решение

Решение

Все функции вызовутся по очереди.

Пусть n=3
Можно нарисовать дерево вызовов, где (1)-первая функция, (2)-вторая функция
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-+- 1 -+- 1 -+- 1    // 1 --> 1 --> 1
 |     |     |
 |     |     +- 2    // 1 --> 1 --> 2
 |     |
 |     +- 2 -+- 1    // 1 --> 2 --> 1
 |           |
 |           +- 2    // 1 --> 2 --> 2
 |
 +- 2 -+- 1 -+- 1    // 2 --> 1 --> 1
       |     |
       |     +- 2    // 2 --> 1 --> 2
       |
       +- 2 -+- 1    // 2 --> 2 --> 1
             |
             +- 2    // 2 --> 2 --> 2
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2019, 19:42
Помогаю со студенческими работами здесь

С помощью рекурсивной функции вывести значение функции sin(x) от А до B включая с шагом step
Дан прототип функции void print_tab (float A, float B, float step) Как с помощью рекурсии вывести значение функции sin(x) от А до B...

Ошибка в рекурсивной функции
Всем добрый день/вечер. Никак не могу понять, почему результат рекурсивной функции int exp не выводится в консоли(выдаёт результат 0 при...

Распараллеливание рекурсивной функции
Добрый вечер. Столкнулся с необходимостью распараллеливания показанной ниже функции. До этого имел опыт работы лишь с OpenMP. Не могу даже...

Выход из рекурсивной функции
Какие существуют способы выхода из рекурсивной функции? Читал про try &amp; catch и goto, но применить их для моего случая не получилось. ...

Из рекурсивной функции в не рекурсивную
Есть рекурсивная функция сортировки слиянием. Нужно переделать на функцию без рекурсий. void mergeSort(long* a, int begin, int end) ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru