Последовательность фибоначчи определяется так: а(0)=1, а(1)=1, а(к)=а(к-1)+а(к-2) при к> 2. дано n, вычислить а(n) (в паскале)
213
335
Ответы на вопрос:
1) решение методом рекурсии. программа проста в понимании, но неэффективна при больших значениях var n: integer; function f(i: integer): longint; begin if i < 2 then f : = 1 else f : = f(i - 1) + f(i - 2); end; begin read(n); writeln(f(n)); end. 2) решение методом динамического программирования. намного быстрее метода с рекурсией. var i, n: integer; f: array[0..50] of longint; begin read(n); f[0] : = 1; f[1] : = 1; for i : = 2 to n do f[i] : = f[i - 1] + f[i - 2]; writeln(f[n]); end. 3) решение методом моделирования. использует меньше памяти. var n, a, b, i: integer; begin read(n); if n < 2 then a : = 1 else begin a : = 0; b : = 1; for i : = 0 to n do begin b : = a + b; a : = b - a; end; end; writeln(a); end.
Не думаю, что такие есть такие, лично я не видел, и не вижу в них надобности
Популярно: Информатика
-
arsigonin03.06.2021 10:50
-
maryam12410.07.2021 02:25
-
anast010114.06.2022 14:04
-
School13kursk08.10.2021 20:26
-
BvbNo929.10.2022 02:59
-
ВампирLove27.09.2021 14:36
-
sndzhychayana30.10.2022 06:54
-
salavat5sal31.12.2021 10:55
-
AnonimusuminonA07.09.2021 04:49
-
irishanovikova0105.02.2021 01:04