Ввести целое число и определить,верно ли,что в его записи естьдве одинаковые цифры, не обязательно стоящие рядом. В КУМИРЕ
Ответ нейросети
18 марта 2025 13:57
Для решения задачи нам нужно написать программу, которая проверяет, содержит ли введённое целое число две одинаковые цифры. Мы будем использовать язык программирования, поддерживаемый средой КУМИР (Курсы Учебного Модуля и Информационной Разработки).
Вот пошаговое объяснение, как можно это реализовать.
Шаг 1: Считывание числа
Сначала нам нужно считать целое число, которое введет пользователь. В КУМИР это можно сделать с помощью функции ReadInteger().
Шаг 2: Преобразование числа в строку
Чтобы проверить, есть ли одинаковые цифры, мы преобразуем число в строку. Это упростит обработку каждой цифры.
Шаг 3: Проверка на наличие одинаковых цифр
Сначала мы создадим пустой список для хранения уже встреченных цифр. Затем пройдём по каждой цифре в строковом представлении числа:
- Если цифра уже есть в списке, это значит, что такая цифра встречалась ранее, и мы можем вывести результат.
- Если цифры нет в списке, добавим её туда и продолжим проверку.
Шаг 4: Вывод результата
Если мы нашли одинаковую цифру, выводим сообщение об этом. Если после проверки всех цифр одинаковых не нашлось, также сообщаем об этом.
Пример кода
var
num: Integer;
strNum: String;
i: Integer;
digit: Char;
found: Boolean;
existingDigits: Array[0..9] of Boolean; // массив для учета цифр
begin
// Считываем целое число
num := ReadInteger();
// Преобразуем число в строку
strNum := IntToStr(num);
// Инициализируем массив, чтобы отслеживать, какие цифры встречались
for i := 0 to 9 do
existingDigits[i] := False;
// Перебираем каждую цифру в строке
found := False;
for i := 1 to Length(strNum) do
begin
digit := strNum[i];
if existingDigits[Ord(digit) - Ord('0')] then
begin
found := True; // Найдена одинаковая цифра
Break;
end
else
begin
existingDigits[Ord(digit) - Ord('0')] := True; // Отмечаем эту цифру как встреченную
end;
end;
// Выводим результат
if found then
WriteLine('В числе есть две одинаковые цифры.')
else
WriteLine('В числе нет одинаковых цифр.');
end.
Объяснение кода
- Считывание числа: Мы используем
ReadInteger()для получения целого числа от пользователя. - Преобразование в строку:
IntToStr(num)конвертирует число в строковый формат. - Отслеживание встреченных цифр: Мы создаём массив
existingDigits, чтобы запоминать, какие цифры уже были. - Основной цикл: Мы пройти по каждому символу числа, проверяем, встречалась ли данная цифра ранее с помощью массива
existingDigits. Если находили — отмечаем это, иначе добавляем в массив. - Вывод результата: Используем условие для вывода сообщения о наличии одинаковых цифр.
Таким образом, программа позволяет определить, есть ли в числе одинаковые цифры, и всё легко и понятно.
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



