Поиск в одномерном целочисленном массиве кольца максимальной длины - Pascal

Узнай цену своей работы

Формулировка задачи:

Прошу мне помочь решить эту задачу... Поиск в одномерном целочисленном массиве кольца максимальной длины. Кольцо - это переход с текущего элемента на элемент , индекс которого равен значению текущего элемента , и так далее, пока значение очередного элемента не будет равно индексу начального. Спасибо!!!

Решение задачи: «Поиск в одномерном целочисленном массиве кольца максимальной длины»

textual
Листинг программы
const n = 20;
      maxlen = 1000;
var a: array[1..n] of integer;
...
start := 10;
i := start;
dlina := 0;
...
repeat
 if a[i] <= n then begin
  i := a[i];
  inc(dlina);
 end else break;
until (a[i]=1 OR i=start OR maxlen<dlina);

Объяснение кода листинга программы

  1. Переменная n и maxlen объявляются и инициализируются значениями 20 и 1000 соответственно.
  2. Переменная a объявляется и инициализируется как массив целых чисел от 1 до n.
  3. Переменная start и i инициализируются начальным значением 10 и текущим значением i соответственно.
  4. Переменная dlina инициализируется значением 0.
  5. Цикл repeat начинается.
  6. Внутри цикла проверяется условие: если значение a[i] меньше или равно n, то значение i увеличивается на 1, значение переменной dlina увеличивается на 1, и цикл продолжается. Если же значение a[i] больше n, то цикл прерывается оператором break.
  7. В конце цикла проверяется условие: если значение a[i] равно 1, или i равно start, или значение dlina больше maxlen, то цикл повторяется. Если же условие не выполняется, то цикл завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы