IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Динамические массивы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


Задача : Вводится массив. Верно ли, что в нем каждое значение встречается не более 2-х раз.

Как сравнить первое значение в массиве со всеми остальными значениями? или тут можно решить эту задачу другим образом?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


по разному можно ... вот лобовой вариант:


i := 1;
count := 0;

while (i <= n) and (count <= 2) do begin
count := 1;
j := 1;
while (j <= n) and (count <= 2) do begin
if (a[i] = a[j]) and (i <> j) then inc(count);
inc(j);
end;
if count <= 2 then inc(i);
end;

if i > n then writeln('Yes') else writeln('No');


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






klem4
  j := 1;
?

Может лучше с i начинать (все, что было раньше - уже проверено)?

Хотя нет... Тогда придется еще проверять, не тестировалось ли это число уже... no1.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Может лучше с i начинать (все, что было раньше - уже проверено)?



Пожалуй yes2.gif

Цитата
Хотя нет... Тогда придется еще проверять, не тестировалось ли это число уже...


Всеравно быстрее будет работать, ведь если найден "неподходящий" элемент, внешний цикл сразу прекратится ... Это если бы вопрос стоял "нету ли элементов, которые встречаеются < 2 раз", вот тогда полюбому j := 1;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Объясняю:
<2, 2, 3, 4, 2, 3, 4, 5>
Откуда надо начинать, чтобы при i указывающем на выделенный элемент не получить count = 1 ?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


а если использовать визуальную программу и массив вводится через Listbox , это решение тоже можно использовать?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


rolleyes.gif

До этой двойки дело не дойдет smile.gif

Уже для первой двойки count будет равен 3

внутренний цикл прервется, за тем прервется внешний (while (i <= n) and (count <= 2))

а за тем проверка, которая даст отрицательный результат:

if i > n then writeln('Yes') else writeln('No');


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Ну, напечатала лишнюю двойку... Смысл-то тот же:
<2, 3, 4, 2, 3, 4, 5>

Теперь что будешь делать? Для первой двойки Count = 2, все в порядке... А для второй (если делать j := i)?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Эм что-то я не врубаюсь, ну хорошо

Первай двойка: Count = 2, все ок
Вторая двойка: Count = 1 все ок

в чем проблема я понять не могу просто smile.gif



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






<...>

Сообщение отредактировано: Алена -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Новичок
*

Группа: Пользователи
Сообщений: 35
Пол: Мужской
Реальное имя: andrey

Репутация: -  0  +


ммм...а как мне всё это понять? unsure.gif а то чтото я не понял ничего!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 19:11
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name