Судя, по ключевым словам надо написать программу на языке Pascal с использованием цикла с потусловием. Алгоритм может быть такой: 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]);
Var C:array[0..9] of byte; A:longint; i:byte; Begin For i:= 0 to 9 do C[i]:=0; Repeat Write('Введите натуральное число: ');ReadLn(A); Until A>0; i:=Trunc(Ln(A)/Ln(10)); if frac(Ln(A)/Ln(10)) > 0 then i:=i+1; For i:= 1 to i do Begin C[A mod 10]:=C[A mod 10] +1; A:=A div 10 End; For i:= 0 to 9 do if C[i]>1 then A:=1; if A = 1 then Begin Write('Повторяются: '); For i:= 0 to 9 do if C[i] > 1 then Write(i,' ') End End.
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
C:array[0..9] of byte;
A:longint;
i:byte;
Begin
For i:= 0 to 9 do
C[i]:=0;
Repeat
Write('Введите натуральное число: ');ReadLn(A);
Until A>0;
i:=Trunc(Ln(A)/Ln(10));
if frac(Ln(A)/Ln(10)) > 0 then i:=i+1;
For i:= 1 to i do
Begin
C[A mod 10]:=C[A mod 10] +1;
A:=A div 10
End;
For i:= 0 to 9 do
if C[i]>1 then A:=1;
if A = 1 then
Begin
Write('Повторяются: ');
For i:= 0 to 9 do
if C[i] > 1 then
Write(i,' ')
End
End.
Пример работы программы:
Введите натуральное число: 131350788
Повторяются: 1 3 8