int fib_rec(int n)
{
if (n==1)or(n==2)
return 1;
return fib_rec(n-1)+fib_rec(n-2);
}
Рекурсивная функция n-го числа Фибоначчи
Язык используется c++.
Надо написать рекурсивное определение функции с одним параметром n типа int, возвращающей n-е число Фибоначчи.
Т.е. если n = 5, то соответственно функция должна возвращать 5-е число Фибоначчи:
Число1 = 5
Число2 = Число1 + 0 = 5
Число3 = Число1 + Число2 = 10
Число4 = Число2 + Число3 = 15
Число5 = Число3 + Число4 = 25
Обычную функцию с циклом for написал без проблем, а рекурсивную не получается.
Буду очень признателен за помощь.
Код:
Примерно так...
то вместо 25 выводит 5.
Кроме того при n=0 получается не очень хорошо.
В чём бредовость?
В условии задачи же сказано, что функция принимает параметр n и возвращает
n-e число Фибоначчи. Т.е. введя 5, как мы получим в качестве 5-го числа опять же 5?
Объясните пожалуйста на пальцах почему.
Всё понял. Спасибо за помощь.