Вывести целое число и определить, верно ли, что в его записи есть две одинаковые цифры. Например, 1234 - нет; 1224 - да. Обязательно должен присутствовать цикл с предусловием while <условие> do. Информатика. 8 класс. Паскаль ABC.
Ответы на вопрос
Нужно: дано целое число. Вывести это число и определить, есть ли в его десятичной записи хотя бы две одинаковые цифры (то есть встречается повтор).
Идея решения простая:
-
Читаем число
n. -
Берём модуль (на случай отрицательного).
-
Будем “снимать” цифры справа налево, пока число не станет 0 — это как раз делается циклом while do.
-
Чтобы понять, повторялась ли цифра, удобно хранить, какие цифры 0..9 уже встречались.
Если текущая цифра уже встречалась — значит, повтор есть.
Отдельный случай: если n = 0, то запись состоит из одной цифры 0, повторов нет.
Программа (PascalABC, 8 класс, с while do)
pascalprogram TwoSameDigits;
var
n, x, d: integer;
used: array[0..9] of boolean;
hasRepeat: boolean;
i: integer;
begin
readln(n);
writeln(n);
// Сброс массива "встречалась ли цифра"
for i := 0 to 9 do
used[i] := false;
hasRepeat := false;
x := abs(n);
// Особый случай: число 0
if x = 0 then
begin
// Одна цифра 0, повторов быть не может
writeln('нет');
exit;
end;
// Цикл с предусловием while do
while (x > 0) and (not hasRepeat) do
begin
d := x mod 10; // последняя цифра
if used[d] then
hasRepeat := true
else
used[d] := true;
x := x div 10; // убираем последнюю цифру
end;
if hasRepeat then
writeln('да')
else
writeln('нет');
end.
Как это работает на примерах
-
1234: цифры 4,3,2,1 — все разные → выводнет. -
1224: цифры 4,2,2,… вторая “2” уже была → выводда.
Программа сначала выводит само введённое целое число, затем на новой строке печатает да или нет, в зависимости от наличия двух одинаковых цифр.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

