Решаем задачи Абрамян на Паскале. Array49

Array49. Дан целочисленный массив размера $$N$$. Если он является перестановкой, то есть содержит все числа от $$1$$ до $$N$$, то вывести $$0$$; в противном случае вывести номер первого недопустимого элемента.

Решение:

 

Решение:

Решение olegst1975:

 

Задачи из раздела Array можно посмотреть здесь.

Комментарии:

Комментарии 6

  • С 29 строкой разобраться + рассмотреть вариант когда a[i] выходит за интервал [1..N].
    Мое видение, но верю. что можно лучше)

    [/crayon]

  • Поясню, я использовал значение i которое получается после прохождения цикла for, но это значение различно в разных компиляторах. Поправил:
    Было:

    Стало:

    • я правильно понимаю алгоритм:
      снчала узнаём, что значения не выходят из пределов от 1 до N,
      а потом смотрим нет ли сдвоенных значений?
      если есть запоминаем какое?

  • 22 строка первого решения нужно поменять на

  • но даже если поменять, как я написал выше (в случае массива 5,2,3,4,6), то и такой массив проглотит 5,2,3,4,2, а это неправильно

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *