Arrr ... Привет, мне, маменьки! Разверните грот! Полный на правый борт! Ах, почувствуй ветер в своих волосах!
Да, мои сердечные ... Мне нужно немного твоих навыков! Моя команда гораздо более модернизирована, чем я сам ... Я все еще предпочитаю "точки" компаса (см. Здесь для получения дополнительной информации, Arrr ...), в то время как моя команда всегда использует головную боль .. Я бы хотел легкий способ превратить эту болтовню, которую они называют хедин, в то, что я смогу понять, Аррр!
То, что мне нужно, - это код, который «вводит» ввод числа (десятичные дроби в порядке), такого как «», 0 <= the headin' < 360
и он должен выплевывать «ответ» как ближайшую точку компаса! Arrr!
Вот несколько примеров:
> heading 0.1
North
> heading 11.25
North by East
> heading 22.7
North Northeast
> heading 44.99
Northeast
> heading 91
East
Теперь, если вы хотите, чтобы ваш заголовок был таков, что он попал точно в середину двух точек компаса, не беспокойтесь, мои сердечные, я буду ожидать, что код выложится Between <point 1> and <point 2>
Например heading 5.625
, скажет, что Between North and North by East
это произойдет только для заголовка, который удовлетворяет уравнению, H = 5.625 + 11.25(N)
где H - это заголовок, а N - целое число от 0 до 31 включительно ...
Два ограничения ...
1) Я не хочу, чтобы вы использовали массивы для хранения ваших данных для очков или для хедин ... «Будь обманщиком», сэр, и вы почувствуете вкус моей промахи ... Это не рассчитывайся, как в старые добрые времена! Arrr!
2) Самый короткий код выигрывает, или я буду делать то, что ты идешь ... План!
'
(Апостроф) в одном вопросе. Снимаю шляпу : DОтветы:
Perl 5.10 с использованием замещения,
231228226224Четыре новых строки добавлены для удобства чтения.
Изменить: Golfed еще 2 байта, используя
pop
. Спасибо @Dom ГастингсИзменить: на 2 байта меньше, используя
qw()
источник
Я трачу слишком много времени на поиски сокровищ, но вот решение на Java :
edit Если я уменьшу приведенный выше код и сделаю его по-настоящему уродливым, это станет так:
Java, 770 символов
источник
aaarrrgs
Arrays.asList
команду, простите меня за мое незнание Java, но разве это не использование массива хранения? Или это хитрый способ представить массив в виде списка? ;)switch
вместо этого можно было бы использовать оператор (с несколькими дополнительными символами, к сожалению). Ох и сокращенная версия того же кода добавлена. Я подумаю о дальнейшем сокращении, фактически изменив его работу.Питон, 264
Это использует заглавные буквы согласно странице википедии и должно работать для любого числа.
источник
Аррр Питон, 336
Спасибо @Jeen
источник
Perl 5.10,
262257254Несколько похоже на одно из решений Python:
Четыре новых строки добавлены для удобства чтения.
Изменить: на три байта меньше благодаря @Dom Hastings
источник
;
в концеsub p
и переключитьсяshift
наpop
.