Написать программу на паскале. Помогите написать. Числа Фибоначчи (fn) определяются формулами: f0=f1=1, fn=fn-1+fn-2 при n=2,3,… Определить f10, f25, f40.

Написать программу на паскале. Помогите написать.  Числа Фибоначчи (fn) определяются формулами: f0=f1=1, fn=fn-1+fn-2 при n=2,3,… Определить f10, f25, f40.
Гость
Ответ(ы) на вопрос:
Гость
1) Решение с помощью рекурсии. Программа проста в понимании, но неэффективна при больших значениях function f(i: integer): longint; begin   if i < 2 then     f := 1   else     f := f(i - 1) + f(i - 2); end; begin   writeln('f(10) = ', f(10));   writeln('f(25) = ', f(25));   writeln('f(40) = ', f(40)); end. 2) Решение с помощью динамического программирования. Вычисляет намного быстрее, чем решение с рекурсией. var   i: integer;   f: array[0..40] of longint; begin   f[0] := 1;   f[1] := 1;   for i := 2 to 40 do     f[i] := f[i - 1] + f[i - 2];   writeln('f(10) = ', f[10]);   writeln('f(25) = ', f[25]);   writeln('f(40) = ', f[40]); end. 3) Решение с помощью моделирования. Использует меньше памяти. function f(i: integer): longint; var   a, b: longint;   j: integer; begin   if i < 2 then     f := 1   else   begin     a := 0;     b := 1;     for j := 0 to i do     begin       b := a + b;       a := b - a;     end;     f := a;   end; end; begin   writeln('f(10) = ', f(10));   writeln('f(25) = ', f(25));   writeln('f(40) = ', f(40)); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы