![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.12.2013
Сообщений: 26
|
![]()
Дан целочисленный массив размера N. Если он является перестановкой, то есть содержит все числа от 1 до N, то вывести 0, в противном случае вывести номер первого недопустимого элемента.
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
покажите, как Вы описываете и заполняете массив?
а, насколько я понимаю условия задачи, задачка очень проста. возникает только вопрос неоднозначности формулировки "первого" недопустимого элемента. Что есть "первый" недопустимый элемент в понимании автора задачи, сие только ему и ведомо! например, пусть N = 4 есть массив {3, 4, 1, 4 } Какой номер у первого недопустимого элемента? а в массиве {4, 3, 7, 2} какой номер первого недопустимого элемента? Поэтому, либо, если возможно, уточняйте у преподавателя, либо, интерпретируйте это так, как Вам понятнее и проще. например, могу предложить такой вариант. вводим ДОПОЛНИТЕЛЬНЫЙ массив такой же размерности. заполняем его числами от 1 до N далее в цикле идём по исходному массиву A. Каждое число A[i] проверяем, что оно входит в диапазон [1..N] - если нет, то: стоп-машина - нашли первый недопустимый элемент. Если число в нужном диапазоне, то проверяем наличие данного числа в доп массиве (по его номеру. Если в доп массиве на позиции, равной проверяемому числу стоит это число, то всё хорошо. Заменяем число в доп.массиве на нолик (признак, что число отработано). Если же на позиции в доп.массиве УЖЕ ноль (это признак, что данное число встречалось в проверяемом массиве ранее) - то: стоп-машина - нашли первый недопустимый элемент. как-то так... |
![]() |
![]() |
![]() |
#3 | |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#4 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Заметьте, не число, которого нет, а Цитата:
![]() |
||
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Ладно.. Тогда я за множество..
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() |
![]() |
![]() |
![]() |
#7 | ||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
Вариант без доп памяти.. Сортировка! (Пусть кусок.. N*logN.. и потом еще пробежка по массиву..) Можно еще цикл в цикле.. но там будет хуже..
Цитата:
![]() Цитата:
|
||
![]() |
![]() |
![]() |
#8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,430
|
![]()
Poma][a, при сортировке нужно будет еще запоминать исходную позицию числа в массиве.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
#9 | ||
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]() Цитата:
Цитата:
И тут уже выводим или 2 или 4 или что-то еще.. UPDATE Прозрел.. Мы должны выводить №элемента.. надо все же читать условия.. |
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
цикл или массив | wasabi | Фриланс | 11 | 27.01.2010 21:23 |
Задачка на цикл 'пока'... | Андрю)(@ | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 15.01.2009 17:07 |
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) | Mr.User | Помощь студентам | 9 | 23.11.2007 01:34 |