В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
sashabelousoydf1w
sashabelousoydf1w
10.10.2022 09:15 •  Информатика

Дан одномерный массив. удалить из массива все числа фибоначчи. язык c++ или паскаль

Показать ответ
Ответ:
WhiteRos
WhiteRos
19.08.2020 08:49
// PascalABC.NET 3.0, сборка 1088
const
  nn=100;
var
  a:array[1..nn] of integer;
  i,n,k,max,f2,f1,fib:integer;
begin
  Write('Введите количество элементов в массиве (1-100): ');
  Read(n);
  Randomize;
  Writeln('*** Сформированный массив ***');
  max:=0;
  for i:=1 to n do begin
    a[i]:=Random(100)+1;
    Write(a[i],' ');
    if max<a[i] then max:=a[i]
    end;
  Writeln;
  // Заменяем элементы, равные числам Фибоначчи, на -1
  k:=0;
  f1:=1; fib:=1;
  while fib<=max do begin
    for i:=1 to n do
      if a[i]=fib then begin a[i]:=-1; Inc(k) end;
    f2:=f1; f1:=fib; fib:=f1+f2
    end;
  if k>0 then begin
    // Удаляем элементы, равные -1
    Writeln('*** Результирующий массив ***');
    for i:=n downto 1 do begin
      if a[i]=-1 then begin
        if i<>n then
          for k:=i to n-1 do a[k]:=a[k+1];
        Dec(n);
        end;
      end;
    for i:=1 to n do Write(a[i],' ');
    Writeln
    end
  else Writeln('Числа Фибоначчи не обнаружены')
end.
   
Тестовое решение:
Введите количество элементов в массиве (1-100): 20
*** Сформированный массив ***
21 51 15 38 52 35 42 51 16 53 96 3 53 82 87 12 55 37 93 19
*** Результирующий массив ***
51 15 38 52 35 42 51 16 53 96 53 82 87 12 37 93 19
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота