Alekseevna
?>

ответь: 1. КАК МОЖНО ЕЩЕ ДОРАБОТАТЬ ПРОГРАММУ РОБОТА«ЧАСовой»?2. КАКИЕ ЕЩЕ ФУНКЦИИ ТЫ БЫДОБАВИЛ К ДВИЖЕНИЯМ РОБОТА?РАССМОТРИ И ПРЕДСТАВЬ СвоиСОБСТВЕННЫЕ ПРЕДЛОЖЕНИЯ.​

Информатика

Ответы

bryzgalovag
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.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

ответь: 1. КАК МОЖНО ЕЩЕ ДОРАБОТАТЬ ПРОГРАММУ РОБОТА«ЧАСовой»?2. КАКИЕ ЕЩЕ ФУНКЦИИ ТЫ БЫДОБАВИЛ К ДВИЖЕНИЯМ РОБОТА?РАССМОТРИ И ПРЕДСТАВЬ СвоиСОБСТВЕННЫЕ ПРЕДЛОЖЕНИЯ.​
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ramco1972
zakupki
Nefedova1432
dmitriy
Pastel-sova
Olegovich Nikolaevna
Калмыкова-Петрунина
arsen-ai-ti
elenakarpova709
chaa140
Merkuloff78
Ligaevruslan
Mariya Filippov
rozhkova
kotovayaanastasia2069