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

Объяснить работу кода - C++

Восстановить пароль Регистрация
 
Subj0
0 / 0 / 0
Регистрация: 10.06.2016
Сообщений: 1
10.06.2016, 15:13     Объяснить работу кода #1
Подскажите пожалуйста как работает этот код при F(9). На экран выводит 131159, но как это происходит?

C++
1
2
3
4
5
6
7
8
9
void F(int n)
{
    if (n > 0)
    {
        F(n / 3);
        F(n - 4);   
        cout << n;
    }
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2016, 15:13     Объяснить работу кода
Посмотрите здесь:

Объяснить работу программы C++
Замена двойных пробелов из входного файла на одиночный пробел и запись в выходной файл (объяснить работу кода) C++
Объяснить работу программы C++
C++ Объяснить работу двух кодов
Объяснить работу Memcpy C++
Просьба объяснить работу std::thread в двух коротких примерах кода C++
Объяснить работу кода C++
C++ Рекурсия, объяснить работу программы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
olya7
476 / 293 / 91
Регистрация: 18.02.2013
Сообщений: 684
10.06.2016, 15:47     Объяснить работу кода #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
F(9)

1)F(3) 2) F(5)

4) F(1) 5)F (-1) 6) F(1) 7) F(1)

ответвления 4)-7) ведут к ответвлениям, где n<=0
поэтому вначале выполнится 4) - на экран вылезет 1, затем отработает его родитель 1) - на экране появится 3, далее отработает ветвь 2) которая вызовет 6) - на экране появится еще одна 1, далее отработает 7) - еще одна 1, далее отработает сама ветвь 2) - на экран выползет 5, ну и последняя на экран выползет 9
Mr.X
Эксперт С++
 Аватар для Mr.X
2799 / 1575 / 246
Регистрация: 03.05.2010
Сообщений: 3,656
10.06.2016, 21:21     Объяснить работу кода #3
Цитата Сообщение от Subj0 Посмотреть сообщение
Подскажите пожалуйста как работает этот код при F(9).
Легче всего понять, если нарисовать на бумаге бинарное дерево вызовов, а потом рекурсивно прочитать его в порядке левое поддерево - правое поддерево - вершина.
Yandex
Объявления
10.06.2016, 21:21     Объяснить работу кода
Ответ Создать тему

Метки
С++ для начинающих
Опции темы

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