// 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
Если ты пишешь на другом языке программирования, то могу коротко рассказать суть решения. Большой квадрат со стороной x получается из x^2 маленьких квадратом, которые состоят из двух прямоугольных треугольников. Такие квадраты можно составить из треугольников a1 и a2 или a3 и a4. Поэтому берём минимальное значение из a1 и a2 и минимальное из a3 и a4. Суммируем эти значения, берём корень и округляем в меньшую степень.
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
На паскале решение выглядит так:
var
s,a1,a2,a3,a4:int64;
i,o:text;
function min(x,y:int64):int64;
begin
if x>y then
min:=y else
min:=x;
end;
begin
assign(i,'pobeda.in');
reset(i);
read(i,a1,a2,a3,a4);
close(i);
s:=min(a1,a2)+min(a3,a4);
assign(o,'pobeda.out');
rewrite(o);
writeln(o,trunc(sqrt(s)));
close(o);
end.
Если ты пишешь на другом языке программирования, то могу коротко рассказать суть решения. Большой квадрат со стороной x получается из x^2 маленьких квадратом, которые состоят из двух прямоугольных треугольников. Такие квадраты можно составить из треугольников a1 и a2 или a3 и a4. Поэтому берём минимальное значение из a1 и a2 и минимальное из a3 и a4. Суммируем эти значения, берём корень и округляем в меньшую степень.