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

code: #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.      
Поделиться:

Похожие статьи: