Площади фигур через интерфейс Shape на Go
Условие
Даны фигуры: круг circle r, прямоугольник rect w h, треугольник triangle a b c (стороны образуют невырожденный треугольник). Для каждой фигуры выведите площадь, затем строку total S с суммой площадей и строку max <тип> с типом фигуры наибольшей площади (при равенстве первая по порядку).
Площади печатайте с двумя знаками после точки. Круг: π·r². Треугольник: по формуле Герона.
Ввод: n (1 ≤ n ≤ 2000), затем n описаний, числа дробные.
Вывод: n площадей, затем total и max.
Пример
3
circle 1
rect 2 3
triangle 3 4 5
3.14
6.00
6.00
total 15.14
max rect
Как подойти
Интерфейс Shape с методами Area и Kind, три реализации, фабрика по первому слову.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Очередь с приоритетом через container/heap на Go
Следующий вопрос
Сортировка структур по нескольким ключам на Go
Ещё по теме «Структуры, методы и интерфейсы»
- LRU-кеш на Go: map и двусвязный список
- Что выведет Go: встраивание и вызов метода
- Что выведет Go: интерфейс хранит копию значения
- Что выведет Go: method value и defer копируют ресивер
- Что выведет Go: nil-указатель в интерфейсе error
- Что выведет Go: ресиверы по значению и указателю
- Что выведет Go: сравнение структур и указателей
- Что выведет Go: type switch