Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Найти число

Автор: Janna 23.11.2007 14:08

Помогите, пожалуйста, решить задачку:
Дана последовательность целых чисел. Известно, что все числа в ней встречаются четное количество раз, кроме одного, которое встречается нечетное число раз. Требуется написать программу, которая определяет это число.
give_rose.gif

Автор: Lapp 23.11.2007 15:52

М
Пожалуйста, не пиши слово "помогите" или "SOS" в заголовке. Я исправил, в следующий раз удалю тему.



Сама что-то пыталась сделать? Покажи свои наработки.

Автор: Lapp 23.11.2007 16:18

Еще пара вопросов:
- "целые" означает integer?
- как задается последовательность? массив, файл?..

Автор: Malice 23.11.2007 17:32

Я бы организовал динамический список.. Тогда алгоритм такой:
1. Проходим по всему перечню данных чисел (массив, файл и т.п)
2. Если в списке есть текущее число, то удалить его из списка, иначе добавить его в список
3. По окончании выполнения цикла в списке останутся числа, встречающиеся нечетное кол-во раз.

Автор: Lapp 23.11.2007 17:38

Цитата(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 23.11.2007 17:44

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 23.11.2007 17:55

Логично! good.gif

Кстати, в моем варианте ошибка, если это число стоит первым.. sad.gif Исправлять уже не хочется..

Автор: Гость 23.11.2007 21:18

Спасибо большое за помощь! Но я в Паскале вообще плохо разбираюсь..., а так нужно сделать эту задачку. Как организовать ввод данных с клавиатуры?

Автор: Ozzя 24.11.2007 12:33

read/readln