Задача 5 Урок 20

Задача 5 Урок 20:

Пользователь получает на вход целое положительное число N напишите рекурсивную функцию, которая вернет число Фиббоначи стоящии под этим номером

function fib(n: integer): integer;
begin
 if n > 1 then result := fib(n - 1) + fib(n - 2)
 else result := n;
end;

var N: integer;
begin
  write('Введите номер числа Фибоначчи: ');
  readln(N);
  writeln(fib(N));
  readln();
end.
vedro-compota's picture

решение засчитано
подумать на решением в один рекурсивный вызов в теле фукции

_____________
матфак вгу и остальная классика =)

type arr = array [1..2] of integer;
function fib(n: integer): arr;
const a: arr = (0, 1);
begin
 if n = 0 then result := a
 else
   begin
     a[2] += a[1];
     a[1] := a[2] - a[1];
     result := fib(n - 1);
   end;
end;

var N: integer;
begin
  write('Введите номер числа Фибоначчи: ');
  readln(N);
  writeln(fib(N)[1]);
  readln();
end.
vedro-compota's picture

решение засчитано

_____________
матфак вгу и остальная классика =)