Задача
Какого наибольшего размера прямоугольник можно вырезать из круга диаметра d, если известно, что длины его сторон образуют золотую пропорцию.
Входные данные
Единственное число — диаметр окружности.
Выходные данные
Два числа — длины сторон прямоугольника.
Тесты
№ | Входные данные | Выходные данные | |
[latex]d[/latex] | [latex]a[/latex] | [latex]b[/latex] | |
1 | 0 | 0 | 0 |
2 | 1 | 0.850651 | 0.525731 |
3 | 2 | 1.7013 | 1.05146 |
4 | 21 | 17.8638 | 11.0404 |
5 | 0.32 | 0.272208 | 0.168234 |
6 | 1.7 | 1.44611 | 0.893743 |
7 | 134 | 113.981 | 70.448 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 |
class Test { static function main() { // Считываем входные данные (диаметр окружности) var d = Std.parseFloat(Sys.stdin().readline()); var f = (Math.sqrt(5) + 1) / 2; var b = d / Math.sqrt (1 + f * f); var a = b * f; trace(a + " " + b); } } |
Выполнение кода на Try Haxe !
Решение
Прямоугольник будет иметь наибольший размер в случае, когда его вершины лежат на окружности. Тогда, очевидно, диаметр окружности будет диагональю данного прямоугольника. Согласно условию, длины его сторон образуют золотую пропорцию. Это означает, что [latex]\frac { a }{ b } =\phi [/latex], где [latex]a[/latex] — длина большей стороны прямоугольника, [latex]b[/latex] — длина его меньшей стороны, а [latex]\phi=\frac { 1+\sqrt { 5 } }{ 2 } [/latex]. Отсюда [latex]a=b\cdot \phi[/latex]. По теореме Пифагора, [latex]{ a }^{ 2 }+{ b }^{ 2 }={ d }^{ 2 }[/latex]. Путём подстановки из предыдущего выражения и простых алгебраических преобразований получим формулу для вычисления длины меньшей стороны: [latex]b=d\cdot \sqrt { \frac { 1 }{ { \phi }^{ 2 }+1 } } [/latex].
Сначала для удобства находим значение [latex]\phi[/latex], затем — по указанным формулам длины сторон прямоугольника.
- e-olymp 2164. Шифр Юлия - 01.06.2017
- А137д - 01.06.2017
- Ю 4.25 - 13.05.2017
Табуляция в коде. И лучше объявлять каждую переменную в отдульной строке.
Исправил