Pers.narod.ru. Алгоритмы. Рекурсивная функция для вычисления чисел Фибоначчи |
Поскольку последовательность чисел Фибоначчи задаётся рекуррентной формулой:
F0=0, F1=1, Fn=Fn-1+Fn-2, n≥2
её часто используют как пример рекурсии. На мой взгляд, числа Фибоначчи, как и факториал - примеры для рекурсии неудачные, но что сложилось, то сложилось :)
/*
Написать рекурсивную функцию для вычисления элемента ряда Фибоначчи
с номером n. Соотношение ряда Фибоначчи задаётся формулой
f(n)=f(n-1)+f(n-2), n=0,1,..., f(0)=0, f(1)=1
*/
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
long int fibo (int n) {
if (n==0) return 0;
else if (n==1) return 1;
else return (fibo(n-1)+fibo(n-2));
}
void main () {
int n;
cout << "Введите число N ";
cin >> n;
if (n<0) {
cout << "Число должно быть не меньше 0!";
getchar();
exit (1);
}
long int f;
f = fibo (n);
cout << "Число Фибоначчи с номером " << n << " = " << f;
getchar();
}
|
|