Допустим, у вас есть целое положительное число N . Сначала создайте правильный многоугольник с N вершинами, с расстоянием между соседними вершинами, равным 1. Затем соедините линии из каждой вершины с любой другой вершиной. Наконец, рассчитайте длину всех строк, суммируемых вместе.
пример
Учитывая вход N = 6 , построить шестиугольник с линиями, соединяющими каждую вершину с другими вершинами.
Как вы можете видеть, есть всего 6 линий границы (длина = 1), 3 линии, которые удваивают длину границы (длина = 2), и 6 других линий, которые мы, используя теорему Пифагора, можем вычислить длину для , который
Если мы сложим длины линий вместе, мы получим (6 * 1) + (3 * 2) + (6 * 1.732) = 22.392 .
Дополнительная информация
Поскольку структуры с 2 или менее вершинами не считаются полигонами, выведите 0 (или NaN
, поскольку расстояние между одной вершиной не имеет большого смысла) для N = 1, поскольку одна вершина не может быть связана с другими вершинами, а 1 для N = 2, так как две вершины соединены одной линией.
вход
Целое число N в любом приемлемом формате.
Выход
Длина всех строк, суммируемых вместе, с точностью не менее 3 десятичных знаков, либо в виде функции возврата, либо в виде прямой печати stdout
.
правила
- Стандартные лазейки запрещены.
- Это код-гольф , поэтому выигрывает самый короткий код в байтах на любом языке.
Удачи!
Тестовые случаи
(Input) -> (Output)
1 -> 0 or NaN
2 -> 1
3 -> 3
5 -> 13.091
6 -> 22.392
nan
тоже хорошо, так как расстояние между одной вершиной в любом случае не имеет особого смысла.
n=1
мне кажется.
N
, поскольку выходные данные увеличиваются, а значения с плавающей точкой становятся менее точными.
1
? Моя текущая запись будет возвращатьсяnan
, например, вместо нуля, и для этого потребуется специальный регистр.