32-точечный компас ... интересен, если не сказать больше.

По Denelson83 (собственная работа) [ GFDL или CC-BY-SA-3.0 ], через Wikimedia Commons
Ваша задача - измерить градус и преобразовать его в направление на 32-точечном компасе.
Каждое направление на 11,25 (360/32) градуса дальше предыдущего. Например, N (север) составляет 0 градусов, NbE (север на восток) составляет 11,25 градуса, NNE (север-северо-восток) составляет 22,5 градуса и т. Д.
Что касается того, как вы должны получить указания,
0 градусов - это N, 90 градусов - это E, 180 градусов - это S, а 270 градусов - это W.
- Это так называемые кардинальные направления.
Точки на полпути между основными направлениями - это просто основные направления между сцепленными. N или S всегда идут первыми, а W или E всегда вторыми.
- Это так называемые порядковые направления.
Точки на полпути между кардинальным и порядковым направлениями - это направления между конкатенацией, опять же, с «-» между ними. Кардинальные направления идут первыми, порядковые вторыми.
- Это так называемые вторично-межкардинальные направления.
Точки на полпути между вторичными межкардинальными направлениями и другими направлениями являются другими направлениями «по» кардинальному направлению, к которому они ближе всего (конечно, кроме того, которое находится непосредственно рядом с ними).
- Я понятия не имею, как они называются: P
Если все это объяснение вредит вашему мозгу так же, как моему, вы можете обратиться к этой таблице:
1 North N
2 North by east NbE
3 North-northeast NNE
4 Northeast by north NEbN
5 Northeast NE
6 Northeast by east NEbE
7 East-northeast ENE
8 East by north EbN
9 East E
10 East by south EbS
11 East-southeast ESE
12 Southeast by east SEbE
13 Southeast SE
14 Southeast by south SEbS
15 South-southeast SSE
16 South by east SbE
17 South S
18 South by west SbW
19 South-southwest SSW
20 Southwest by south SWbS
21 Southwest SW
22 Southwest by west SWbW
23 West-southwest WSW
24 West by south WbS
25 West W
26 West by north WbN
27 West-northwest WNW
28 Northwest by west NWbW
29 Northwest NW
30 Northwest by north NWbN
31 North-northwest NNW
32 North by west NbW
Вот более подробная таблица и, возможно, лучшее объяснение точек компаса.
Ваша задача состоит в том, чтобы взять ввод в градусах и вывести полное имя направления компаса, которому оно соответствует, вместе с его сокращением.
Тестовые случаи:
Input Output
0 North N
23.97 North-northeast NNE
33.7 Northeast by north NEbN
73.12 East-northeast ENE
73.13 East by north EbN
219 Southwest by south SWbS
275 West W
276 West by north WbN
287 West-northwest WNW
Вся заглавная буква должна быть сохранена, как в тестовых примерах. Максимальное количество десятичных знаков равно 2. Все входные числа будут больше или равны 0 и меньше 360. Если присутствует десятичная точка, с обеих сторон будут цифры (вам не нужно обрабатывать .1или 1.).
Это код-гольф , поэтому выигрывает самый короткий код в байтах.