Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/34: Рейтинг темы: голосов - 34, средняя оценка - 4.79
2 / 2 / 0
Регистрация: 04.03.2015
Сообщений: 76
1

Посчитать количество рекурсивных вызовов

07.10.2015, 17:03. Показов 6727. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В коде программы определена следующая функция:

C++
1
2
3
4
5
int foo(int n) {
    if (n <= 0)
        return 1;
    return foo((n * 2) / 3) + foo(n - 2);
}
Нужно посчитать, сколько всего раз будет вызвана функция foo, если ее вызвать с аргументом 3 (т.е. foo(3)). Самый первый вызов тоже нужно посчитать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.10.2015, 17:03
Ответы с готовыми решениями:

Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции)
Здравствуйте, уважаемые форумчане ! Подскажите, пожалуйста, как определить количество...

Вычислите, используя рекурсию, выражение y=x+2*x^2+3*x^4+ ... для некоторого n (n – количество рекурсивных вызовов)
Вычислите, используя рекурсию, выражение y=x+2*x^2+3*x^4+ ... для некоторого n (n – количество...

Прата С. С++. Посчитать количество вызовов функции
Всем привет! Закончил раздел про встроенные функции, шаблоны, полиморфизм и ссылочные переменные....

Уменьшение числа рекурсивных вызовов. Мемоизация
Как уменьшить число вызовов? Просто не могу понять что нужно запомнить и условие как поставить... ...

4
Неэпический
18106 / 10693 / 2062
Регистрация: 27.09.2012
Сообщений: 26,918
Записей в блоге: 1
07.10.2015, 17:05 2
Ну так добавьте счетчик
0
Модератор
Эксперт С++
13703 / 10906 / 6473
Регистрация: 18.12.2011
Сообщений: 29,115
07.10.2015, 17:06 3
C++
1
2
3
4
5
6
7
8
9
10
11
int foo(int n) {
   static int count=0;
   count++;
   if (n <= 0)
   {
         cout<<count;
        count=0;
        return 1;
   }
    return foo((n * 2) / 3) + foo(n - 2);
}
0
202 / 138 / 88
Регистрация: 21.12.2014
Сообщений: 369
07.10.2015, 17:06 4
C++
1
2
3
4
5
6
int foo(int n) {
    if (n==3) count++; //Задать где-нибудь count
    if (n <= 0)
        return 1;
    return foo((n * 2) / 3) + foo(n - 2);
}
0
553 / 361 / 206
Регистрация: 27.11.2014
Сообщений: 1,049
07.10.2015, 17:08 5
Лучший ответ Сообщение было отмечено lerka1996 как решение

Решение

9 вбивай
0
07.10.2015, 17:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2015, 17:08
Помогаю со студенческими работами здесь

Количество вызовов функции в цикле
Предположим цикл ниже выполняется 10 раз. Функция size() также будет 10 раз вызвана? for(int i =...

Большое количество вызовов констр-ра и дестр-ра
Добрый день! Есть класс для подсчёта указателей на объект и класс, который сопровождает или...

Функция, которая возвращает количество её вызовов
Напишите функцию, которая возвращает количество её вызовов (вызвали в первый раз - возвращает 1,...

Как уменьшить количество вызовов функции?
Как в цикле while уменьшить количество вызовов функции Coordinates, чтоб в нем было 2 вызова всего?...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru