Вопрос задан 26.02.2019 в 05:32. Предмет Информатика. Спрашивает Ажібаева Молдир.

Удалить из списка все узлы, до и после которых находятся узлы с информационными составляющими,

являющимися числами Фибоначчи. Двунаправленный список.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Чернова Александра.
Средствами PascalABC.NET 3.2 эта задача решается очень просто.

1. Короткое решение, оставляющее в недоумении: а для чего тут было использовать двусвязный список? ответ: потому что таково задание!

// PascalABC.NET 3.2, сборка 1439 от 09.05.2017
// Внимание! Если программа не работает, обновите версию!

function IsFib(n:integer):boolean;
begin
  if (n=1) or (n=2) then Result:=true
  else begin
    Result:=false;
    (var n1, var n2):=(1,2);
    var Fib:integer;
    repeat
      Fib:=n1+n2;
      if Fib=n then begin Result:=true; break end;
      (n2,n1):=(Fib,n2)
    until Fib>n
    end;
end;

begin
  var L:=ReadSeqInteger('->',ReadInteger('n=')).ToLinkedList;
  L:=L.Where(x->not IsFib(x)).ToLinkedList;
  L.Println
end.

Пример
n= 9
-> 3 17 13 10 12 4 11 0 5
17 10 12 4 11 0

2. Несколько более длинное решение для желающих немного порулить удалением узлов.

Функция остается той же, а изменения делаются в главной программе.

begin
  var L:=ReadSeqInteger('->',ReadInteger('n=')).ToLinkedList;
  var a:=L.Where(x->IsFib(x)).ToArray; // список значений для удаления
  foreach var t in a do L.Remove(t); // собственно удаление узлов
  L.Println
end.

3. Бонус. Как это сделать без двусвязного списка (опять же, основная программа).

begin
  var a:=ReadSeqInteger('->',ReadInteger('n='))
      .Where(x->not IsFib(x)).ToArray;
  a.Println
end.


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Удаление узлов с информационными составляющими, являющимися числами Фибоначчи из двунаправленного списка

Для удаления узлов с информационными составляющими, являющимися числами Фибоначчи, из двунаправленного списка, нужно выполнить следующие шаги:

1. Проход по списку: Начните с первого узла списка и последовательно переходите к следующему узлу, пока не достигнете конца списка. 2. Проверка информационной составляющей: Для каждого узла, проверьте, является ли его информационная составляющая числом Фибоначчи. - Числа Фибоначчи определяются как последовательность чисел, где каждое число равно сумме двух предыдущих чисел. Начальные числа в последовательности обычно считаются равными 0 и 1. - Например, последовательность чисел Фибоначчи может выглядеть так: 0, 1, 1, 2, 3, 5, 8, 13, 21, и так далее. 3. Удаление узлов: Если информационная составляющая узла является числом Фибоначчи, удалите этот узел из списка. 4. Обновление ссылок: При удалении узла, обновите ссылки на предыдущий и следующий узлы, чтобы они указывали друг на друга, обходя удаленный узел.

Примерный псевдокод для удаления узлов с информационными составляющими, являющимися числами Фибоначчи, из двунаправленного списка:

``` current_node = head

while current_node is not None: next_node = current

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос