Помощь - Поиск - Пользователи - Календарь
Полная версия: Найти число
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Janna
Помогите, пожалуйста, решить задачку:
Дана последовательность целых чисел. Известно, что все числа в ней встречаются четное количество раз, кроме одного, которое встречается нечетное число раз. Требуется написать программу, которая определяет это число.
give_rose.gif
Lapp
М
Пожалуйста, не пиши слово "помогите" или "SOS" в заголовке. Я исправил, в следующий раз удалю тему.



Сама что-то пыталась сделать? Покажи свои наработки.
Lapp
Еще пара вопросов:
- "целые" означает integer?
- как задается последовательность? массив, файл?..
Malice
Я бы организовал динамический список.. Тогда алгоритм такой:
1. Проходим по всему перечню данных чисел (массив, файл и т.п)
2. Если в списке есть текущее число, то удалить его из списка, иначе добавить его в список
3. По окончании выполнения цикла в списке останутся числа, встречающиеся нечетное кол-во раз.
Lapp
Цитата(Malice @ 23.11.2007 13:32) *

Я бы организовал динамический список..
Список не обязательно. Вот мое решение без списка. И вообще без дополнительных структур. Только две переменные цикла smile.gif.
const
N=15;
a:array[1..N]of integer=(1,2,3,1,3,4,4,2,3,3,5,4,5,6,6);

var
i,k:integer;

begin
k:=1;
while k<=N do begin
i:=k+1;
while (i<=n) and (a[i]<>a[k]) do Inc(i);
if i>N then begin
WriteLn(a[k]);
ReadLn;
Exit
end;
a[i]:=a[1];
Inc(k);
while a[k]=a[1] do Inc(k)
end
end.

volvo
const
N=15;
a:array[1..N]of integer=(1,2,3,1,3,4,4,2,3,3,5,4,5,6,6);
s: integer = 0;

var i: integer;
begin
for i := 1 to n do s := s xor a[i];
writeln(s);
end.


Стандартная тестовая задача, кстати...
Lapp
Логично! good.gif

Кстати, в моем варианте ошибка, если это число стоит первым.. sad.gif Исправлять уже не хочется..
Гость
Спасибо большое за помощь! Но я в Паскале вообще плохо разбираюсь..., а так нужно сделать эту задачку. Как организовать ввод данных с клавиатуры?
Ozzя
read/readln
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.