Для решения этой задачи на языке программирования Pascal ABC 1.8 можно воспользоваться следующими шагами:
- Пройти по входной строке и подсчитать количество вхождений каждой цифры.
- Проверить, какие цифры встречаются больше одного раза.
- Отсортировать эти цифры в порядке возрастания.
- Вывести результат.
Вот как это можно реализовать:
program FindRepeatedDigits;
uses SysUtils;
var
input: string;
count: array['0'.'9'] of integer;
i: integer;
hasRepeatedDigits: boolean;
output: string;
begin
// Инициализируем массив подсчета количества вхождений цифр
for i := 0 to 9 do
count[Chr(Ord('0') + i)] := 0;
// Читаем входную строку
ReadLn(input);
// Подсчитываем количество вхождений каждой цифры
for i := 1 to Length(input) do
if input[i] in ['0'.'9'] then
Inc(count[input[i]]);
// Ищем цифры, которые встречаются больше одного раза
hasRepeatedDigits := False;
output := '';
for i := 0 to 9 do
if count[Chr(Ord('0') + i)] > 1 then
begin
hasRepeatedDigits := True;
output := output + Chr(Ord('0') + i);
end;
// Выводим результат
if hasRepeatedDigits then
WriteLn(output)
else
WriteLn('NO');
end.
Объяснение кода:
Инициализация массива count
:
- Мы создаем массив
count
размером 10 для подсчета количества вхождений каждой цифры от '0' до '9'.
- Инициализируем все элементы массива нулями.
Чтение входной строки:
- Используем
ReadLn
для чтения входной строки.
Подсчет количества вхождений цифр:
- Проходим по каждому символу входной строки и, если это цифра, увеличиваем соответствующее значение в массиве
count
.
Поиск цифр, встречающихся больше одного раза:
- Проходим по массиву
count
и проверяем, какие цифры встречаются больше одного раза.
- Если такие цифры найдены, добавляем их в строку
output
.
Вывод результата:
- Если найдены цифры, встречающиеся больше одного раза, выводим их в порядке возрастания.
- Если таких цифр нет, выводим 'NO'.
Таким образом, программа выполняет все необходимые шаги для решения поставленной задачи.