Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

22.05.2013, 03:20. Просмотров 1402. Ответов 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));
}
Я вроде сам сделал, но не уверен в правильности решения..
Заранее спасибо за ответ)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 03:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия, ряд Фибоначчи (определить количество рекурсивных вызовов функции) (C++):

Посчитать количество рекурсивных вызовов - C++
В коде программы определена следующая функция: int foo(int n) { if (n <= 0) return 1; return foo((n * 2) / 3) +...

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

Функции. Рекурсия на примере Фибоначчи - C++
Можете начинающему объяснить решен задачи про числа фиибоначи с помощью рекурсии. Вот код // Fibonacci series using recursion ...

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

непонятно считает количество вызовов рекурсивной функции - C++
Помогите пожалуйста. не могу понять как он выводит переменную n, а именно почему во второй строчке ноль? если отслеживать пошагово, то с...

Рекурсия: определить номер и значение числа Фибоначчи, не превышающего заданную величину - C++
Здравствуйте,можете пожалуйста написать код? Вот задание: Определить порядковый номер и значение члена ряда Фибоначчи, не...

5
cosmic
34 / 32 / 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; // выводим число вызовов
что то в этом направлении.
1
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
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 ?
0
cosmic
34 / 32 / 0
Регистрация: 29.08.2012
Сообщений: 84
Записей в блоге: 1
22.05.2013, 03:41 #4
если я тебя правильно понял, то можно объявить счетчик статически или глобальным сделать, если нет предрассудков по этому поводу. По второму пункту не могу ответить, мозг переходит в режим сна )
0
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
22.05.2013, 03:44  [ТС] #5
Без разницы, статический или глобальный) Жаль, второй пункт меня как раз-таки интересует больше всего) буду ждать, что ответят другие пользователи форума. Спасибо, что откликнулись)
0
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; // выводим число вызовов
как вариант еще можно в функцию передавать вторым параметром ссылку на счетчик
0
22.05.2013, 05:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2013, 05:29
Привет! Вот еще темы с ответами:

Рекурсия. Найти значение функции через разложение в ряд Тейлора - C++
Собственно, сабж. Есть функция cos^2(x), которую я хочу разложить в ряд Тейлора. Вот отрывок кода с функцией: double func(double...

Распечатать те элементы порядковые номера которых - числа Фибоначчи; определить количество перемен знаков - C++
в заданном целочисленном массиве распечатать те элементы,порядковые номера которых - числа Фибоначчиб а также определить количество перемен...

Числа Фибоначчи и рекурсия - C++
Всем привет. Кто может мне доступно объяснить нахождение числа? Да и вообще, что мы ищем? Есть ряд: 0, 1, 1, 2, 3, 5, 8, 13, 21......

рекурсия и массивы: числа Фибоначчи - C++
привет всем ! как с помощью рекурсии с параметрами массива реализовать числа Фибоначчи ? вот что то на клепал #include "stdafx.h" ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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