// PascalABC.NET 3.1, сборка 1172 от 19.02.2016 begin var s:=ReadlnString('Введите двухзначное 16-ричное число'); var mH:array['A'..'F'] of integer:=(10,11,12,13,14,15); if s.Length=1 then s:='0'+s; var c:=s.ToCharArray; var n:=0; for var i:=0 to 1 do case c[i] of '0'..'9':n:=16*n+StrToInt(c[i]); 'A'..'F':n:=16*n+mH[c[i]]; else begin Writeln('Недопустимый символ: ',c[i]); Exit end end; Writeln('Десятичный эквивалент: ',n) end.
Тестовое решение: Введите двухзначное 16-ричное число 3A Десятичный эквивалент: 58
begin
var s:=ReadlnString('Введите двухзначное 16-ричное число');
var mH:array['A'..'F'] of integer:=(10,11,12,13,14,15);
if s.Length=1 then s:='0'+s;
var c:=s.ToCharArray;
var n:=0;
for var i:=0 to 1 do
case c[i] of
'0'..'9':n:=16*n+StrToInt(c[i]);
'A'..'F':n:=16*n+mH[c[i]];
else begin
Writeln('Недопустимый символ: ',c[i]);
Exit
end
end;
Writeln('Десятичный эквивалент: ',n)
end.
Тестовое решение:
Введите двухзначное 16-ричное число 3A
Десятичный эквивалент: 58
Лис
Объяснение:
1 байт = 8 бит.
1 символ = 2 байта.
Размер текста уменьшился на 80 бит, а значит на 10 (80 / 8) бит, а из этого следует что было убрано 5 сиволов (10 / 2).
Считаем и ищем где у нас 5 символов путём перебора:
Если вычеркнуть "Як, " - это 4 символа
Если вычеркнуть "лис, " - это 5 символов
Если вычеркнуть "барс, " - это 6 символов
Если вычеркнуть "жираф, " - это 7 символов
Если вычеркнуть "гепард, " - это 8 символов
Если вычеркнуть "медведь, " - это 9 символов
Если вычеркнуть ", росомаха" - это 10 символа