Получив строку, состоящую из префикса и затем «иллюзии», преобразуйте это число в стандартную форму.
Например:
"million" -> 10^6
"trillion" -> 10^12
"quattuordecillion" -> 10^45
Программа должна быть в состоянии обрабатывать ввод данных до Сантиллиона, что составляет 10 ^ 303. Список имен и их стандартных значений формы можно найти здесь - обратите внимание, что это дает значения для каждого приращения 10 ^ 3 до 10 ^ 63, но затем дает их с приращениями 10 ^ 30, однако шаблон довольно прост.
Программа должна обрабатывать все 100 случаев (даже те, которые явно не указаны на веб-сайте) - вот несколько примеров этого:
"sexvigintillion" -> 10^81
"unnonagintillion" -> 10^276
"octotrigintillion" -> 10^117
Ввод может быть дан через STDIN, аргумент функции или жестко запрограммирован в виде строки.
Это код-гольф, поэтому выигрывает самый короткий код!
code-golf
math
number
kolmogorov-complexity
Джеймс Уильямс
источник
источник
Ответы:
Python 2 (
384368365348347 байт)(
if
Строка имеет отступ с одной вкладки, а остальные - с одним пробелом.)Здесь
c('million') == 10**6
должен быть особый случай, потому что'novem'
также заканчивается'm'
.Примеры:
Спасибо Falko за то, что он запутал его до 350 байтов.
Для практики я попытался переписать это как одну строку, используя лямбды. Это
404398390384380379 байт:источник
return'10^'+str(3*k)
было бы всего 4 байта больше.a
иb
в функцию в качестве аргументов ключевых слов.1000**k
короче чем10**(3*k)
. Приращениеk
пути3*d[p]
также одинаково короткое.if'm'==s:k=6;d=[]
вместо второго длинногоreturn
оператора.JS (ES6),
292270Понимает только цифры, записанные в данном списке. ОП не ясно о других.
Пример:
источник
split(0)
с ,match(/[A-Z][a-z]*/g)
чтобы использовать регулярные выражения , чтобы соответствовать каждой строке.=>
.С 235
Обрабатывает все 100 случаев. Программа использует стандартный ввод и стандартный вывод.
Кому нужны регулярные выражения для разбиения верблюжьих дел?
пример
источник
*U<95 ?
) и все новые строки?Clojure,
381377 байтПример:
(c "Septuagintillion") ;; 1.0E213
источник
Haskell, 204 байта (+9 для форматированной строки)
В GHCi:
Замена
10^(
на"10^"++(show.
добавляет еще 9 байтов:В GHCi:
Редактировать: я должен был исправить,
"quinquagintillion"
который содержит"qua"
.источник