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

Ответы 1

  • 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.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years