Информатика Паскаль Последовательность Фибоначчи образуется так: первый и второй члены...

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

Информатика Паскаль Последовательность Фибоначчи образуется так: первый и второй члены последовательности равны 1, каждый следующий равен сумме двух предыдущих (1, 1, 2, 3, 5, 8, 13, ...). Найти:

а) первое число в последовательности Фибоначчи, большее n (значение n вводится с клавиатуры; n > 1);

б) сумму всех чисел в последовательности Фибоначчи, которые не превосходят 1000.


Информатика (169 баллов) | 110 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1457 от 29.05.2017
// Внимание! Если программа не работает, обновите версию!

function Fib1(n:integer):integer;
begin
  var f1:=1; var f2:=1;
  while f2<=n do (f1,f2):=(f2,f1+f2);<br>  Result:=f2
end;

function FibSum(k:integer):integer;
begin
  Result:=1;
  var f1:=0; var f:=1;
  while true do begin
    (f1,f):=(f,f1+f);
    if Result+f>=k then Break
    else Result+=f
    end
end;

begin
  Writeln(Fib1(ReadInteger('n=')));
  Writeln(FibSum(1000))
end.

Пример
n= 12421
17711
986
(150k баллов)