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.
Пример работы программы:
Введите натуральное число: 131350788
Повторяются: 1 3 8
Переведём число в 2 СС. нацело оно не переведется, поэтому переводим до стольки знаков после запятой, чтобы их общее кол-во вместе с целой частью было =24;
0,002489 в 10 СС= 0,00000000101000110001111 в 2 СС
р=1
Мр=1000001
1100|0001|0000|0000|0101|0001|1000|1111
C 1 0 0 5 1 8 F
<span>Ответ:C100518F</span>
Так пойдет?
P.S. Паскаль. Если что, могу переписать на другой.
Cls
input x
if x<0 then
z=log(-x)
end if
if x>=0 then
z=sqr(x+1)
end if
print z