Если задано положительное целое число n, выведите n-е число в европейской последовательности.
Расчет последовательности
Эта последовательность равна OEIS A242491 .
Число является частью указанной последовательности, если число может быть составлено с использованием как можно большего количества разных монет или банкнот евро, но только по одной из них . Обратите внимание, что вам не нужно учитывать центы.
Пример:
6
будет в последовательности, так как она может состоять из монеты в 1 евро и банкноты в 5 евро.
4
НЕ будет в последовательности, так как он не может быть сформирован с учетом требований.
Чтобы дать всем обзор, вот список со значениями в евро, которые вы должны рассмотреть:
1 €, 2 €, 5 €, 10 €, 20 €, 50 €, 100 €, 200 €, 500 €
Обратите внимание, что эта последовательность находится в диапазоне от 0 (да, 0 включен!) До 888.
Вот первые 15 элементов этой последовательности:
0, 1, 2, 3, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, ...
Тестовые случаи
Вход -> Выход
2 -> 1
6 -> 6
21 -> 25
33 -> 50
a(1)=1
как таблицу OEIS ?N<=512
?0
наn=0
это нормально.0->0; 1->1; 5->6; 20->25; 32->50; 511->888
вместо1->0; 2->1; 6->6; 21->25; 33->50; 512->888
.Ответы:
Желе , 7 байт
Попробуйте онлайн!
Как это устроено
источник
Python 2 , 32 байта
Попробуйте онлайн!
Python 2 , 34 байта
Попробуйте онлайн!
источник
Шелуха ,
8 75 байтПопробуйте онлайн! Изменить: -3 байта благодаря Zgarb!
Я слышал, что в будущем планируется перейти
İ€
на конечную последовательность[0.01,0.02,0.05,0.1,0.2,0.5,1,2,5,10,...,500]
. Как только это будет реализовано, следующий код должен работать с числом байтов 7:где
↓6
опускаются первые шесть элементов последовательности. Попробуйте онлайн!источник
0
с к выходу?Σ!Ṗ↑9İ€
должен сохранить байт.İ€
. То, что он сейчас возвращается,2500
а25
не просто совпадение.↑9
, так как в тексте задачи не упоминается, что должно происходить для входных данных после 512.Perl 5 , 29 байт
28 байт код + 1 для
-p
.Использует индексирование на основе 0.
Попробуйте онлайн!
источник
sprintf"%o",$_-1
, из-за последовательности, индексированной, например2 -> 1
, от 1 , хотя последовательность OEIS начинается с 1-1
до тех пор, пока ОП выяснил!Желе , 11 байт
Попробуйте онлайн!
Большое спасибо @Erik the Outgolfer за большую помощь в чате!
объяснение
источник
Mathematica, 47 байт
Mathematica, 48 байтов
-6 байт от Мартина Эндера
источник
Join[x={1,2,5},10x,100x]
иSubsets@
.Java 8,
2826 байт0 индексированные:
Порт ответа @xnor на Python 2 (который раньше был удален, поэтому исходный 1-индексированный ответ приведен ниже).
Попробуй это здесь.
Старый 1-индексированный ответ ( 28 байт ):
Порт @Tfeld 's Python 2 ответа, прежде чем он сделал свое последнее редактирование . Вместо того, чтобы использовать
~-
кучу раз, он использует--n
уменьшениеn
на 1 сразу после входа в лямбда-функцию.Попробуй это здесь.
источник
05AB1E , 7 байтов
0 индексированные.
Порт г-на Xcoder's Jelly ответа
Попробуйте онлайн!
объяснение
источник
8в4‰ε5β}J
(0-проиндексировано)8в4‰J5öJ
8 с трюком Денниса. Ваш действительно лучше подходил для 05AB1E :)Python 2 ,
403836 байтВдохновлен ответом xnor , но использует 1-индексирование.
Попробуйте онлайн!
Python 2 ,
786562615856 байтПопробуйте онлайн!
источник
a(1)=1
разрешено.Желе , 15 байт
0 индексированные.
Попробуйте онлайн!
объяснение
Это основано на решении xnor Python , где алгоритм имеет вид n + n / 4 + n / 32 * 10 + n / 256 * 100 .
Поскольку первое n не изменено, это то же самое, что и:
Поскольку 4, 32 и 256 являются степенями двух, они могут быть переведены в битовые сдвиги.
Игра в гольф не очень хорошо работает в Python, но превращение списков в строки кодовых страниц Jelly сокращает количество байтов в Jelly.
Желе , 24 байта
Попробуйте онлайн!
источник
€
в вашем коде. :) Но -1, потому что это первый раз, когда ответ Jelly длиннее, чем мой ответ на Java. XD Позор тебе (и дальше и дальше играть в гольф). ;)Октава , 59 байт
Попробуйте онлайн!
объяснение
Код создает полную последовательность, а затем индексирует ее.
Во- первых, двоичные выражения чисел
0
,1
...511
генерируются в качестве матрицы 512 × 9:(
-48
часть нужна, потому что результатомdec2bin
являются символы, а не цифры). Это даетТогда произведение Кронекера
[1 2 5]
и[1 10 100]
вычисляетсяи транспонирован
что дает девять возможных значений евро в виде вектора 9 × 1:
Матрица-умножение вышеуказанной матрицы и вектора
дает вектор 512 × 1, содержащий все возможные числа в последовательности, с повторениями и без сортировки:
Дедупликация и сортировка
дает полную последовательность:
Наконец, вход используется для индексации в этой последовательности
произвести вывод.
источник
Рубин ,
2827 байтПопробуйте онлайн!
объяснение
Выведите восьмеричную строку, замените цифры 4..7 на 5..8
источник
Утилиты Bash + GNU, 20
Считывает индекс с нулевым индексом из STDIN.
Попробуйте онлайн .
источник
05AB1E , 20 байтов
Попробуйте онлайн!
1-индексируется, используя формулу
[(n%3)^2 + 1]*10^floor(n/3)
для генерации первых 10 терминов, затем используя powerset для вычисления всех возможных комбинаций ... Затем я сортирую и вытягиваюa[b]
.Смотрите это в действии ниже:
источник
JavaScript (ES6), 34 байта
Или 32 байта, используя правильную 0-индексацию:
источник
n=1
давать0
?Желе , 20 байт
Попробуйте онлайн!
Я знаю, что это дольше, чем существующий ответ, но я думаю, что этот подход пригоден для игры отсюда: P
-2 байта благодаря Эрику Аутгольферу
источник
1,10,ȷ2
->“¢½d‘
Сетчатка , 42 байта
Попробуйте онлайн! Ссылка включает в себя тестовые случаи. 0 индексированные. Объяснение:
Преобразование из десятичной в одинарную, с
;
суффиксом.Преобразовать в восьмеричное, но все еще используя унарное представление цифр
;
после каждого унарного значения.Добавьте 1 к значениям 4-7.
Преобразуйте каждое значение плюс его суффикс в десятичное число.
источник
Pyth , 12 байт
Использует колдовство Денниса .
Попробуй это здесь.
Pyth ,
16 1513 байтПроверьте все контрольные примеры.
Спасибо Эрику Аутгоферу за некоторые идеи.
источник
C 67 байт
Прямой порт из ответа Нейла на JavaScript , но я подумал, что это нужно добавить для полноты.
Протестировано на GCC версии 6.3.0. Он выдаст несколько предупреждений, но все равно скомпилирует.
источник