Задача. Задача жестянщика. Из круга радиуса [latex]r[/latex] вырезан прямоугольник, большая сторона которого равна [latex]a[/latex]. Найти максимальный радиус круга, который можно вырезать из полученного прямоугольника?
Экстрмальные тесты: [latex]a=2r[/latex] ; [latex]a=r\sqrt{2}[/latex]
Решение:
Назовем меньшую сторону прямоугольника»[latex]b[/latex]», радиус большей окружности «[latex]R[/latex]», радиус меньше «[latex]r[/latex]».
В треугольнике со сторонами R,b,a, нам известны R,a, найдем b: По теореме Пифагора b=[latex]\sqrt{4R^2+a^2}[/latex], следовательно:
[latex]b=2r[/latex], что можно понять из рисунка или применить свойства вписанной в прямоугольник окружности. Получаем [latex]r=b/2[/latex].
Рисунок для пояснения решения:
Тесты.
№ | Входные данные | Выходные данные |
1 | 9,5 | 8 |
2 | 9,8 | 16 |
3 | 13,11 | 23 |
Код.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> #include <cmath> using namespace std; int main() { int a, R, b, n ; cin>> R >> a; b=sqrt(R*R*4-a*a); n=b/2 ; cout<< n; return 0; } |