Задать вопрос
12 марта, 22:53

Написать программу на паскале. Помогите написать.

Числа Фибоначчи (fn) определяются формулами:

f0=f1=1, fn=fn-1+fn-2 при n=2,3, ...

Определить f10, f25, f40.

+5
Ответы (1)
  1. 13 марта, 00:12
    0
    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.
Знаете ответ на вопрос?
Не уверены в ответе?
Правильный ответ на вопрос 👍 «Написать программу на паскале. Помогите написать. Числа Фибоначчи (fn) определяются формулами: f0=f1=1, fn=fn-1+fn-2 при n=2,3, ... ...» по предмету 📗 Информатика. Развернутая система поиска нашего сайта обязательно приведёт вас к нужной информации. Как вариант - оцените ответы на похожие вопросы. Но если вдруг и это не помогло - задавайте свой вопрос знающим оппонентам, которые быстро дадут на него ответ!
Искать готовые ответы