Вводятся длины векторов, состоящего из целых чисел, и его элементы. Продублировать элементы, являющимися числами Фибоначчи — Pascal(Паскаль)

program dl;

label 1;

var
  m: array [1 .. 100] of integer;
  i, j, n, kol: integer;

Procedure Insertion(n, K: integer; Z: integer);
{ процедура вставки элемента в массив }
Var
  j: integer;
begin
  For j := n downto K do
    m[j + 1] := m[j];
  m[K] := Z;
End; { ************конец процедуры-************ }

begin
  write('Vvedite N (razmer massiva): ');
  readln(n); { считываем размер массива }
  for i := 1 to n do
  begin
    write('M[', i, ']=');
    readln(m[i]);
  end; { считываем сам масссив }

  for i := 1 to n do
    write(m[i], ' ');
  i := 0;
  j := 1;
1:
  for i := j to n - 2 do
    if m[i] = m[i + 2] - m[i + 1] then
    begin { здесь  определяем является ли число - Фибонначи }
      Insertion(n, i + 1, m[i]);
      inc(n);
      j := j + 2;
      goto 1; { дублируем }
    end;

  writeln;
  writeln;
  writeln('Produblirovano:');
  for i := 1 to n do
    write(m[i], ' '); { выводим исходный масссив на экран }

  readln;

end.

Leave a Comment

85 + = 95