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();
}

Рейтинг@Mail.ru

вверх гостевая; E-mail
Hosted by uCoz