Root /ArchiveAbout
()

Предыдущее и последующее числа Фибоначчи, их порядковые номера

Предыдущее и последующее числа Фибоначчи, их порядковые номера

Приветствую на этой странице читателей моего сайта о программировании для начинающих. Мы снова решим несколько задач решебника Абрамяна, все они посвященные числам Фибоначчи.

While24. Дано целое число N (> 1). Последовательность чисел Фибоначчи FK определяется следующим образом:

F1 = 1, F2 = 1, FK = FK−2 + FK−1, K = 3, 4, … .

Проверить, является ли число N числом Фибоначчи. Если является, то вывести true, если нет — вывести false.

var
  N, F1, F2, c: integer;

begin
  write('N = ');
  readln(N);
  F1 := 1; { <== первый член ряда Фибоначчи }
  F2 := 1; { <== второй член ряда Фибоначчи }
  { Выполняем цикл до тех пор, пока введенное нами 
  число N больше очередного члена ряда Фибоначчи: }
  while (N > F2) do
  begin
    c := F2; { <== запоминаем второй член ряда }
    F2 := F1 + F2; { <== находим новое значение F2 }
    F1 := c { <== первому члену приписываем предыдущий (c=F1) }
  end;
  { Выводим значение логического выражения N = F2. Если 
  выражение истинно, то мы получим True, иначе - False: }
  writeln(N = F2);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 While25. Дано целое число N (> 1). Найти первое число Фибоначчи, большее N (определение чисел Фибоначчи дано в задании While24).

var
  N, F1, F2, c: integer;

begin
  write('N = ');
  readln(N);
  F1 := 1; { <== первый член ряда Фибоначчи }
  F2 := 1; { <== второй член ряда Фибоначчи }
  { Выполняем цикл до тех пор, пока очередной
  член ряда Фибоначчи НЕ превосходит N: }
  while (F2 <= N) do
  begin
    c := F2; { <== запоминаем второй член ряда }
    F2 := F1 + F2; { <== находим новое значение, сложив предыдущие }
    F1 := c { <== первый член заменяем на предыдущий (c=F1) }
  end;
  { Выводим первое число Фибоначчи, большее N: }
  writeln('Ближайшее большее число Фибоначчи: ', F2);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 While26. Дано целое число N (> 1), являющееся числом Фибоначчи: N = FK (определение чисел Фибоначчи дано в задании While24). Найти целые числа FK−1 и FK+1 — предыдущее и последующее числа Фибоначчи.

var
  N, F1, F2, c: integer;

begin
  write('N = ');
  readln(N);
  F1 := 1; { <== первый член ряда Фибоначчи }
  F2 := 1; { <== второй член ряда Фибоначчи }
  { Выполняем цикл до тех пор, пока введенное нами 
  число N больше очередного члена ряда Фибоначчи: }
  while (N > F2) do
  begin
    c := F2; { <== запоминаем второй член ряда }
    F2 := F1 + F2; { <== находим новое значение F2 }
    F1 := c { <== первому члену приписываем предыдущий (c=F1) }
  end;
  if N = F2 then writeln('Соседние числа Фибоначчи: ', F1, ' ', F1+F2)
  else writeln(N, ' не является числом Фибоначчи!');
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 While27. Дано целое число N (> 1), являющееся числом Фибоначчи: N = FK (определение чисел Фибоначчи дано в задании While24). Найти целое число K — порядковый номер числа Фибоначчи N.

var
  N, F1, F2, K: integer;

begin
  write('N = ');
  readln(N);
  F1 := 1; { <== первый член ряда Фибоначчи }
  F2 := 1; { <== второй член ряда Фибоначчи }
  K := 2;
  { Выполняем цикл до тех пор, пока введенное нами 
  число N больше очередного члена ряда Фибоначчи: }
  while (N > F2) do
  begin
    F2 := F1 + F2; { <== новое значение F2 }
    F1 := F2 - F1; { <== новое значение F1 }
    inc(K) { <== увеличиваем номер члена F2 }
  end;
  writeln;
  if N = F2 then writeln('Порядковый номер числа Фибоначчи: ', K)
  else writeln(' ', N, ' не является числом Фибоначчи!');
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647 **procedure** Inc(**var** i: integer);: Увеличивает значение переменной i на 1 Посмотрите ещё материалл Арифметическая и геометрическая прогрессии. Последовательность Фибоначчи.