Var k,a:integer; function fib(f:integer):boolean; var f1,f2,fn:integer; begin f1:=1; f2:=1; fn:=1; while fn<f do begin fn:=f1+f2; f1:=f2; f2:=fn; end; fib:=fn=f; end; begin k:=0; writeln('Вводите числа (0-конец последовательности)'); readln(a); while a<>0 do begin if fib(a) then k:=k+1; readln(a); end; writeln('k = ',k); end.
Пример: Вводите числа (0-конец последовательности) 5 10 2 15 8 13 20 0 k = 4
tipson1
Последовательность фибоначчи выглядит ведь так: 1 1 2 - к примеру - результат - 3 При значения 1 1 1 1 результатом должен быть 0? Или я ошибаюсь?
Answers & Comments
Verified answer
Var k,a:integer;function fib(f:integer):boolean;
var f1,f2,fn:integer;
begin
f1:=1; f2:=1; fn:=1;
while fn<f do
begin
fn:=f1+f2;
f1:=f2;
f2:=fn;
end;
fib:=fn=f;
end;
begin
k:=0;
writeln('Вводите числа (0-конец последовательности)');
readln(a);
while a<>0 do
begin
if fib(a) then k:=k+1;
readln(a);
end;
writeln('k = ',k);
end.
Пример:
Вводите числа (0-конец последовательности)
5
10
2
15
8
13
20
0
k = 4