Задача : Вводится массив. Верно ли, что в нем каждое значение встречается не более 2-х раз.
Как сравнить первое значение в массиве со всеми остальными значениями? или тут можно решить эту задачу другим образом?
по разному можно ... вот лобовой вариант:
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');
klem4
j := 1;?
Объясняю:
<2, 2, 3, 4, 2, 3, 4, 5>
Откуда надо начинать, чтобы при i указывающем на выделенный элемент не получить count = 1 ?
а если использовать визуальную программу и массив вводится через Listbox , это решение тоже можно использовать?
До этой двойки дело не дойдет
Уже для первой двойки count будет равен 3
внутренний цикл прервется, за тем прервется внешний (while (i <= n) and (count <= 2))
а за тем проверка, которая даст отрицательный результат:
if i > n then writeln('Yes') else writeln('No');
Ну, напечатала лишнюю двойку... Смысл-то тот же:
<2, 3, 4, 2, 3, 4, 5>
Теперь что будешь делать? Для первой двойки Count = 2, все в порядке... А для второй (если делать j := i)?
Эм что-то я не врубаюсь, ну хорошо
Первай двойка: Count = 2, все ок
Вторая двойка: Count = 1 все ок
в чем проблема я понять не могу просто
<...>
ммм...а как мне всё это понять? а то чтото я не понял ничего!