Форум: "Основная";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Внизпоследовательность целых чисел. Найти похожие ветки
← →
Лена (2003-01-11 21:01) [0]Ребята если можно помогите решить задание я немного не въезжаю.
Дана последовательность целых чисел. Построить последовательность номеров позиций, откуда начинаются последовательности, состоящие как минимум из 2-х единиц подряд.
В каждой строке входа дано по одному элементу исходной последовательности. Признак конца последовательности - 0.
В каждую строку выхода вывести по одному элементу результирующей последовательности. Заключительный нуль в результат не выводить.
Н-р;
Вход:
4
1
1
1
6
1
2
1
1
0
Выход:
2
8
Зарание благодарю.
← →
Garrett (2003-01-11 23:28) [1]использовать Паскаль, как я понимаю.
Код не проверен, так как пишу навскидку :-)
Надеюсь, окончательную отладку и доводку сделать сможешь
var I, N, LastN, CurrentPos: Integer;
f: boolean;
outArray: Array[0..255] of Integer;
begin
I := 0;
LastN := 0;
CurrPos := 1;
f := false;
repeat
// ввод числа
write ("enter number");
readln (N);
// если введен ноль, то переходим к выводу результатов
if N = 0 then break;
// если предыдущее число было 1 и сейчас тоже один, то смотрим, принадлежат ли числа к уже зарегестрированной последовательности
if (N = 1) and (LastN = 1) then
begin
if not f then
// это новая последовательность
begin
f := True; // следующие единицы считать новой последовательностью не надо
// записываем позицию LastN - она на 1 меньше текущей позиции ввода
outArray[I] := CurrPos -1;
Inc (I);
end;
end
else
f := False; // сбрасываем флаг последовательности
// текущее число теперь последнее
LastN := N;
// увеличиваем позицию ввода
Inc (CurrPos);
until False;
// вывод результатов
For N := 0 to I -1 do
WriteLn (Str (outArray[N]));
end.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c