Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Интересная задача. Точнее её решение. 
:(
    Опции темы
Pakshin A. S.
Дата 3.12.2004, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Дан массив a: array [1..9] of integer; Даны числа x1,x2... Массив а составлен примерно так:
х1, х2 ... х1, х1, х2 Т. е. есть парные жлементы. Определить число, которое не имеет пары. Оно будет, т.к. длина массива нечетная. Проверку делаем через один проход по массиву.
Надеюсь понятно изложил... smile
Предлагаем варианты (и решения и красивого условия)...
PM   Вверх
S.A.P.
Дата 3.12.2004, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



smile
По моему это где то уже было smile
smile
PM MAIL   Вверх
Pakshin A. S.
Дата 3.12.2004, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Где?
PM   Вверх
S.A.P.
Дата 3.12.2004, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



PM MAIL   Вверх
Pakshin A. S.
Дата 3.12.2004, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Тама си... мне нужно на Pascal... Подсказка:
Код

for i:=1 to 9 do
Один оператор

PM   Вверх
Zero
Дата 3.12.2004, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Насколько я понял, то у тебя одномерный массив, который сосотоит, только из чисел x1 и x2, если так то легко: берёш, загоняеш первое число в буферную переменную, а начиная со второго в цикле проверяеш, если текущее число a[i] равно буферной переменной то буферный элемент есть результат, иначе буфер присвоит текущее a[i], и т.д.
Хотя возможно я тебя не так понял, потому что это было бы слишком легко, и врядли ты бы его задал... smile
PM MAIL ICQ   Вверх
S.A.P.
Дата 4.12.2004, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Цитата(Zero @ 3.12.2004, 23:50)
Насколько я понял, то у тебя одномерный массив, который сосотоит, только из чисел x1 и x2
чисел может быть много, причем все, кроме одного встречаются в массиве 2 раза. Одно число не повторяется. Нужно его вычислить за один проход.

PM MAIL   Вверх
Zero
Дата 4.12.2004, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Не думаю, что кто-нибудь сможет предложить что-нибудь проще smile
Код

Program pr;
var
  m:Set of byte;
  a:array[1..9] of integer;
  i:integer;
  c:byte;
begin
    for i:=1 to 9 do
      begin
        write('a[',i,']=');
        readln(a[i]);
      end;
    for i:=1 to 9 do
        if a[i] in m then m:=m-[a[i]]
        else m:=m+[a[i]];
    for c:=0 to 255 do
      if c in m then writeln('Число не имеющее пары=',c)
end.
Хотя, прога имеет недостаток, это диапазон заначений типа Byte, а не Integer (из-за исп. множественного типа)

PM MAIL ICQ   Вверх
S.A.P.
Дата 4.12.2004, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Цитата(Zero @ 4.12.2004, 01:26)
Не думаю, что кто-нибудь сможет предложить что-нибудь проще
есть решение проще. И по условию цикл должен быть один.

PM MAIL   Вверх
cardinal
Дата 4.12.2004, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



Zero, посмотри ссылку, которую Perchilla дал...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Zero
Дата 4.12.2004, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Perchilla @ 4.12.2004, 01:48)
есть решение проще. И по условию цикл должен быть один.
Ну напиши...
А цикл, у меня один, а вторые два не не входят в суть решения, 1-ый для ввода массива, а 3-ий для вывода, а само решение в одном цикле
Код

for i:=1 to 9 do
 if a[i] in m then m:=m-[a[i]]
 else m:=m+[a[i]];
Оставшийся в множестве элемент, и есть результат. smile
Цитата(cardinal @ 4.12.2004, 02:57)
Zero, посмотри ссылку, которую Perchilla дал...

Там написано на Си, а я в нём не рублю. smile
Но впринципе, здесь можно 1-ый и 2-ой циклы совместить, хотя тогда не будет красиво смотрется, а получится каша.

Это сообщение отредактировал(а) Zero - 4.12.2004, 10:56
PM MAIL ICQ   Вверх
S.A.P.
Дата 4.12.2004, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Zero у тебя тут в виде множетства организовано, а число типа Integer, так что не катит.
Добавлено @ 11:24
Цитата(Zero @ 4.12.2004, 10:54)
Ну напиши...
напишу, если не будет больше вариантов.

PM MAIL   Вверх
Pakshin A. S.
Дата 4.12.2004, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: нет
Всего: 61



Perchilla
Пишите! smile
PM   Вверх
Zero
Дата 4.12.2004, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Perchilla @ 4.12.2004, 11:23)
Zero у тебя тут в виде множетства организовано, а число типа Integer, так что не катит.

Да я же сказал, что единственный её недостаток, это то что используется тип байт, а во всём остальном она очень хорошо работает, а то что массив у меня написан типа Integer, это опечатка, надо типа byte
Код

a:array[1..9] of byte;
Perchilla, чем мы будем тут спорить, напиши сейчас лучше своё предложение и все вопросы будут закрыты, только раз уж ты сказал что существует более простой способ чем мои те две строчки то напиши именно так... Мне тоже было-бы интересно посмотреть на решение.

Это сообщение отредактировал(а) Zero - 4.12.2004, 16:10
PM MAIL ICQ   Вверх
S.A.P.
Дата 4.12.2004, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Код

for i:=1 to 9 do
 m:=m XOR a[i];

вот и все smile

Парные элементы проинвертируются, а одинарный останется.

PM MAIL   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.4859 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.