
Ввести натуральное число и определить, какие цифры встречаются несколько раз. ОБЯЗАТЕЛЬНО
использовать until, repeat.

Ответы на вопрос

1. Создадим массив для хранения информации о количестве встретившихся цифр во введенном числе.
2. Ввод самого числа, далее в цикле находим остаток от деления на 10 и увеличиваем значение элемента массива с индексом равным получившемуся остатку на 1. Делим число нацело на десять. Повторяем пока число не равно 0.
3. Выводим результат. В массиве индекс элемента указывает на цифру числа, а значение элемента на количество этой цифры в числе.
//РасаlABC.net v3.1
var a:array[0..9]of integer;
n,i,m: integer;
begin
readln(n);
repeat
m:=n mod 10;
inc(a[m]);
n:=n div 10;
until n<=0;
for i := 0 to 9 do begin
if a[i]>1 then writeln('Цифра:',i,' количество:', a[i]);
end;
end.
Тестовый прогон:
1112333
Цифра:1 количество:3
Цифра:3 количество:3



Для решения этой задачи, можно использовать цикл until и repeat. Вот подробный алгоритм для решения данной задачи:
1. Ввести натуральное число с клавиатуры. 2. Создать массив цифр, в котором будем хранить количество встреч каждой цифры. Изначально все значения массива равны 0. 3. Используя цикл until, начать перебирать каждую цифру числа от младшей разряда к старшей. 4. Внутри цикла until: - Получить текущую цифру числа, используя операцию модуля 10 (остаток от деления на 10). - Увеличить соответствующее значение в массиве цифр. - Убрать текущую цифру из числа, используя операцию деления на 10. - Повторять шаги 3-4, пока число не станет равным 0. 5. Используя цикл repeat, перебрать все значения массива цифр. 6. Внутри цикла repeat: - Если значение текущей ячейки массива больше 1, то вывести эту цифру на экран. 7. Завершить выполнение программы.
Пример кода на языке Pascal:
``` program DuplicateDigits; var number, digit, i: integer; digitsCount: array[0..9] of integer;
begin // Ввод натурального числа write('Введите натуральное число: '); readln(number);
// Инициализация массива цифр for i := 0 to 9 do digitsCount[i] := 0;
// Подсчет встреч цифр repeat digit := number mod 10; digitsCount[digit] := digitsCount[digit] + 1; number := number div 10; until number = 0;
// Вывод повторяющихся цифр writeln('Повторяющиеся цифры:'); for i := 0 to 9 do begin if digitsCount[i] > 1 then writeln(i); end; end. ```
Этот код позволяет ввести натуральное число, подсчитывает количество встреч каждой цифры и выводит на экран цифры, которые встречаются несколько раз.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili