Напишите процедуру которая принимает параметр - натуральное число N и выводит первые N...

0 голосов
267 просмотров

Напишите процедуру которая принимает параметр - натуральное число N и выводит первые N чисел Фибоначчи


Информатика (260 баллов) | 267 просмотров
0

Какой язык?

Дано ответов: 2
0 голосов
Правильный ответ

Procedure fib;
var n, i, a, b: integer;
begin
  read(n);
  b := 1;
  for i := 2 to n do begin
    b := a + b;
    a := b - a
  end;
  if n = 0 then write(0)
           else write(b);
end;

begin
  fib;
end.

(13.3k баллов)
0

нужно решение через procedure

0

Сделал через процедуру

0

Спасибо большое

0

Пожалуйста

0 голосов

#include
using namespace std;
int fib(int n)
{    if (n < 2) return n;    else return fib(n - 1) + fib(n - 2);}
 int main()
{   
 int n;
   
 cin >> n;
   
 cout << fib(n);</span>   
 return 0;
}

(192 баллов)
0

нужно решение через procedure

0

Попробуйте ввести 45. Программа будет выполнятся очень долго

0

Странно, почему рекурсивный алгоритм выполняется дольше?

0

Потому что вызов одной функции влечет за собой еще 2

0

Например если f(5), то будут вызываться f(4), f(3), f(3), f(2), f(2), f(1)

0

И уже, как видно, идут повторные вызовы функции

0

Попробуйте использовать кэшированную рекурсию

0

Хорошо