Ссылка на условие задания: cpp.mazurok.com
Условие
Для аккуратной расстановки шаров в «пирамидку» игроки в бильярд используют специальный равносторонний треугольник. Вычислите какое наибольшее количество шаров радиуса $r$ можно расставить на бильярдном столе при помощи треугольника со стороной $a$.
Изображение
Входные данные.
Длина стороны $a$, и радиус шаров $r$.
Выходные данные.
Число $n$, количество шаров.
Код.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Main { static function main() { var a:Float = Std.parseFloat(Sys.stdin().readLine()); var r:Float = Std.parseFloat(Sys.stdin().readLine()); var sq=Math.sqrt(3.0); var S=(a*a*sq)/4; //расчет площади большего треугольника (формы для шаров) var S1=3*sq*r*r; //расчет площади треугольника в который "вписан" шар для бильярда var n = Math.round(S/S1);//общую площадь делим на площадь треугольника, для получения количества шаров trace("The number of balls: " + n); Sys.exit(0); } } |
Решение.
Для решения данной задачи нужно понимать что каждый шар занимает пространство вокруг себя которое равняется площади описанного вокруг данного шара треугольника. Чтобы посчитать количество шаров вмещаемых в треугольник надо воспользоваться формулой площади равностороннего треугольника через сторону для большого треугольника [latex]S = \frac{a^2\sqrt{3}}{4}[/latex] , и соответственно формулой площади треугольника в который вписан круг основываясь на радиус [latex]S1 = 3\sqrt{3}x^2[/latex] В результате деления данных формул получим количество шаров радиуса $r$ которые поместятся в Треугольника со стороной $a$.
Ссылка на решение задачи на сайте Try Haxe!
Для отправки комментария необходимо войти на сайт.