Ответ: 1048576 килобайт всего
# Код на ruby 2.2.3p173
min = 600*600
for width in 1..600
height = 600.0 / width
perimeter = 2 * (width + height)
if perimeter < min
min = perimeter
p [width, height]
end
end
Последний вывод
[24, 25]
если брать аналитически, то очевидно, что наименьший периметр будет у фигуры наиболее приближенной к кругу. Для прямоугольника это будет квадрат. А его стороны соответственно sqrt(600) = 10*sqrt(6) = 24.49489742783178
Предполагаем без проверки, что треугольник по заданным длинам сторон построить можно (иначе надо убедиться. что сумма каждой пары сторон больше третьей стороны).
А дальше выясняем, какая сторона самая длинная и полагаем, что две другие - это катеты. И проверяем, выполняется ли теорема Пифагора с точностью до какой-то допустимой погрешности, например, до 10⁻⁹.
const
eps=1e-9; // допустимая погрешность
var
a,b,c,t:real; // c - гипотенуза
begin
Write('Введите длины сторон треугольника: '); Read(a,b,c);
if a>c then begin t:=a; a:=c; c:=t end;
if b>c then begin t:=b; b:=c; c:=t end;
if abs(a*a+b*b-c*c)<=eps then Writeln('Треугольник прямоугольный')
else Writeln('Треугольник не прямоугольный')
end.
Если ты сам это сделал, сам придумал
Например, этот ответ является авторским, потому что я сам его придумал и написал, и чтобы кто-то его скопировал он должен спросить разрешение у меня