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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
#1

Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) - C++

22.05.2013, 03:20. Просмотров 1237. Ответов 5
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане !

Подскажите, пожалуйста, как определить количество рекурсивных вызовов функции ?
Вот, собственно, сама функция:
C++
1
2
3
4
5
int Fib1(int n)
{
    if ((n==1)||(n==2)) return(1);
    return(Fib1(n-2)+Fib1(n-1));
}
Я вроде сам сделал, но не уверен в правильности решения..
Заранее спасибо за ответ)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 03:20     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции)
Посмотрите здесь:

C++ Распечатать те элементы порядковые номера которых - числа Фибоначчи; определить количество перемен знаков
рекурсия + двоичная система + Фибоначчи C++
Прата С. С++. Посчитать количество вызовов функции C++
C++ рекурсия и массивы: числа Фибоначчи
C++ рекурсия числа Фибоначчи
Вычислите, используя рекурсию, выражение y=x+2*x^2+3*x^4+ ... для некоторого n (n – количество рекурсивных вызовов) C++
Рекурсия. Найти значение функции через разложение в ряд Тейлора C++
Функции. Рекурсия на примере Фибоначчи C++
Числа Фибоначчи и рекурсия C++
Посчитать количество рекурсивных вызовов C++
непонятно считает количество вызовов рекурсивной функции C++
Рекурсия: определить номер и значение числа Фибоначчи, не превышающего заданную величину C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cosmic
33 / 31 / 0
Регистрация: 29.08.2012
Сообщений: 84
Записей в блоге: 1
22.05.2013, 03:33     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) #2
C++
1
2
3
4
5
6
7
8
9
10
int counter=0;
int Fib1(int n)
{
    if ((n==1)||(n==2)) return(1);
    {
    counter++;  
    return(Fib1(n-2)+Fib1(n-1));
    }
}
cin >> counter; // выводим число вызовов
что то в этом направлении.
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
22.05.2013, 03:37  [ТС]     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) #3
Цитата Сообщение от cosmic Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
int counter=0;
int Fib1(int n)
{
    if ((n==1)||(n==2)) return(1);
    {
    counter++;  
    return(Fib1(n-2)+Fib1(n-1));
    }
}
cin >> counter; // выводим число вызовов
что то в этом направлении.
Тут всё понятно, но мне выводить нужно число вызовов в главную функцию.

И вообще, у меня один вопрос:
В формуле Fib1(n-2)+Fib1(n-1) вызов функции происходит ведь два раза ? поэтому, нужно сделать counter+=2 ?
cosmic
33 / 31 / 0
Регистрация: 29.08.2012
Сообщений: 84
Записей в блоге: 1
22.05.2013, 03:41     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) #4
если я тебя правильно понял, то можно объявить счетчик статически или глобальным сделать, если нет предрассудков по этому поводу. По второму пункту не могу ответить, мозг переходит в режим сна )
Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
22.05.2013, 03:44  [ТС]     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) #5
Без разницы, статический или глобальный) Жаль, второй пункт меня как раз-таки интересует больше всего) буду ждать, что ответят другие пользователи форума. Спасибо, что откликнулись)
henecs
17 / 17 / 0
Регистрация: 19.05.2013
Сообщений: 135
22.05.2013, 05:29     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) #6
C++
1
2
3
4
5
6
7
int counter=0;
int Fib1(int n)
{  counter++;  // я бы написал так ибо функуия уже вызвана и она выполняеться
    if ((n==1)||(n==2)) return(1);
    else return (Fib1(n-2)+Fib1(n-1));
}
cin >> counter; // выводим число вызовов
как вариант еще можно в функцию передавать вторым параметром ссылку на счетчик
Yandex
Объявления
22.05.2013, 05:29     Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции)
Ответ Создать тему
Опции темы

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