Program nd; var n, n1,d, d1: longint; k,a,c: integer; b: boolean; begin write('Введите число: '); readln(n); b:= false; k:=0; while (n>9) and (not b) do begin d:= n mod 10; n1:= n div 10; while (n1>0) and (not b) do begin d1:= n1 mod 10; b:= d1 = d; n1:= n1 div 10; end; n:= n div 10; end; while n<>0 do begin c:=n mod 10; if c=d1 then k:=k+1; n:=n div 10; end; if b then writeln('в этом числе повторяется ',k+1,' раз цифра ',d1) else writeln('цифры не повторяются'); end.
1 votes Thanks 1
Sofa1306
Нужно, чтобы он выводил решением Пример: Введите число>=0:
Var n,m,k:integer; mn1,mn2:set of 0..9; begin write('n = '); readln(n); mn1:=[]; mn2:=[]; m:=n; while m>0 do begin k:=m mod 10; if k in mn1 then mn2:=mn2+[k]; mn1:=mn1+[k]; m:=m div 10; end; if mn2=[] then writeln('В числе нет повторяющихся цифр') else begin write('Повторяются цифры: '); for k:=0 to 9 do if k in mn2 then write(k:2); end; end.
Answers & Comments
Verified answer
Program nd;var n, n1,d, d1: longint;
k,a,c: integer;
b: boolean;
begin
write('Введите число: ');
readln(n);
b:= false;
k:=0;
while (n>9) and (not b) do
begin
d:= n mod 10;
n1:= n div 10;
while (n1>0) and (not b) do
begin
d1:= n1 mod 10;
b:= d1 = d;
n1:= n1 div 10;
end;
n:= n div 10;
end;
while n<>0 do
begin
c:=n mod 10;
if c=d1 then k:=k+1;
n:=n div 10;
end;
if b then writeln('в этом числе повторяется ',k+1,' раз цифра ',d1)
else writeln('цифры не повторяются');
end.
Verified answer
Var n,m,k:integer;mn1,mn2:set of 0..9;
begin
write('n = ');
readln(n);
mn1:=[]; mn2:=[];
m:=n;
while m>0 do
begin
k:=m mod 10;
if k in mn1 then mn2:=mn2+[k];
mn1:=mn1+[k];
m:=m div 10;
end;
if mn2=[]
then writeln('В числе нет повторяющихся цифр')
else begin
write('Повторяются цифры: ');
for k:=0 to 9 do
if k in mn2 then write(k:2);
end;
end.
Пример:
n = 23432
Повторяются цифры: 2 3