Задать вопрос
14 мая, 06:00

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

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

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

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

+4
Ответы (1)
  1. 14 мая, 06:55
    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, ... ...» по предмету 📘 Информатика, а если вы сомневаетесь в правильности ответов или ответ отсутствует, то попробуйте воспользоваться умным поиском на сайте и найти ответы на похожие вопросы.
Смотреть другие ответы