1) сначала переведём
1*2^5+0*2^4+1*2^3+1*2^2+0*2^1+1*2^0 = 45 ( в десятой СС) // ^это степень , тобишь разряд умножаем на 2 в степени разряда
1*2^5+1*2^4+0*2^3+0*2^2+1*2^1+0*2^0=50( в десятичной СС)
2) принадлежат интервалу = 45+46+47+48+49+50=285
3) переведём в двоичную СС
285/2 = 142, остаток: 1
142/2 = 71, остаток: 0
71/2 = 35, остаток: 1
35/2 = 17, остаток: 1
17/2 = 8, остаток: 1
8/2 = 4, остаток: 0
4/2 = 2, остаток: 0
2/2 = 1, остаток: 0
1/2 = 0, остаток: 1
285 = 1000111012
ответ: а)45-50 б) 1000111012
begin
var s := ReadlnString;
var s1 := s.Where(t -> t in ['0'..'9']).Sorted.GroupBy(t -> t)
.Select(c -> (c.Key, c.Count)).OrderBy(t -> t[0]).ToArray;
var s2 := s1.Where(t -> t[1] > 1).Select(t -> t[0] * (t[1] div 2))
.JoinIntoString('').Replace('0', '');
var s3 := s1.Where(t -> t[1] = 1);
if s3.Count > 0 then s2 := s2 + s3.Select(t -> t[0]).First + s2.Inverse
else s2 := s2 + s2.Inverse;
s2.Println
end.
Примерfor i:=99921 downto 229192