Proc36. Описать функцию Fib($$N$$) целого типа, вычисляющую $$N$$-й элемент последовательности чисел Фибоначчи $$F_K$$, которая описывается следующими формулами: $$F_1 = 1,F_2 = 1, F_K = F_{K-2} + F_{K-1}, K = 3, 4, …$$ . Используя функцию Fib, найти пять чисел Фибоначчи с данными номерами $$N_1, N_2, …, N_5$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
program Proc35; Function Fib(N:Integer):Integer; var i:integer; Fk,Fk1,Fk2 :Integer; begin Fk1:=1; Fk2:=1; For i:=3 to N do begin Fk:=Fk2+Fk1; Fk2:=Fk1; Fk1:=Fk; end; Fib:=Fk; end; var N,i:Integer; begin for i:=1 to 5 do begin Write('N :'); Readln(N); Writeln( Fib(N) ); end; Readln; end. |
Другие задачи из раздела Proc можно посмотреть здесь.
Неправильно работает при n=1, n=2. Нужно инициализировать fk=1 перед циклом