Во сколько раз увеличится информационная емкость файла, содержащего растровое изображение, если повысить глубину его цвета со стандарта «черно-белое» до стандарта «65 536 цветов»? 1) 8 2) 16 3) 32 4) 64
Var n,m,osn: integer; function nmbdec(var n,osn: integer): integer; var nmb,l,s,k: integer; begin nmb:=0; s:=0; k:=n; l:=1; while k>0 do begin s:=k mod 10; k:=k div 10; nmb:=nmb+l*s; l:=l*osn; end; Result:=nmb; end; { конец функции} begin write('число: '); readln(n); write('квадрат какого числа: '); readln(m); osn:=10; while osn>=2 do begin osn:=osn-1; if nmbdec(n,osn)=sqr(nmbdec(m,osn)) then begin writeln('основание системы = ',osn); break; end; end; end.
Воспользуемся расширенной записью шестнадцатиричного числа в десятичной системе счисления. Тогда 3(a*16²+b*16+c)=b*16²+c*16+a; 767a=208b+13c; 59a=16b+c → a=(16b+c)/59 (1) Здесь a,b,c - шестнадцатиричные цифры, имеющие десятичный эквивалент от 0 до 15. Наложим ограничения. a и b не могут быть нулевыми, поскольку с них начинаются числа, а с может быть и нулем. При b=15 и c=15 значение a по формуле (1) не может быть больше (16*15+15)/59, что в целых числах дает 4. Следовательно, нам надо подобрать такие b и c, чтобы a принимало значения от 1 до 4. Будем подставлять эти значения в (1). 1) При а=1 получаем (16b+c)/59=1 → 16b+c=59. b=59/16=3 (нацело), c=59-16*3=11. Искомое число 13B₁₆ 2) При а=2 получаем (16b+c)/59=2 → 16b+c=118. b=118/16=7 (нацело), с=118-16*7=6. Искомое число 276₁₆
Аналогичным образом находим два остальных числа: 3B1₁₆ и 4EC₁₆
Замечание. Фактически, мы получаем числа 59х1, 59х2, 59х3, 59х4 и переводим их в шестнадцатиричную систему счисления, поскольку в формуле (1) в скобках записано представление расширенное представление шестнадцатиричного числа.