Вызов:
Учитывая целое число индекса n
, либо выведите n
'-ый элемент в этой последовательности, либо выведите последовательность до индекса включительно n
:
25,25,7,28,29,20,21,22,23,14,35,26,7,28,29,20,16,29,12,15,28,21,14,17,30,13,16,29,12,15,28,21,10,6,12,18,15,11,7,13,19,17,13,9,15,21,18,14,10,16,22,19,15,11,17,23,20,16,12,18,24,21,17,13,19,25,23,19,15,21,27,24,20,16,22,28,25,21,17,23,29,16,13,9,15,21,18,14,10,16,22,20,16,12,18,24,21,17,13,19
Как работает эта последовательность?
ПРИМЕЧАНИЕ. В этом описании индекс индексируется n
как 1.
Поместите цифры 1
через x
на двух линиях длиной n*6 - 1
, где x
зависит от текущей итерации и длины используемых чисел, а затем просуммировать цифры в n
-м / правого большинства олимпийских колец этих двух линий.
Первое число в последовательности рассчитывается следующим образом:
The length of the lines are 5 (because 1*6 - 1 = 5):
12345
67891(0)
Then leave the digits in an Olympic Rings pattern:
1 3 5
7 9
And sum them:
1+3+5+7+9 = 25
Так что n=1
результаты в 25
.
Второе число в последовательности рассчитывается следующим образом:
The length of the lines are 11 (because 2*6 - 1 = 11):
12345678910
11121314151(6)
Then leave the digits in the second/right-most Olympic Rings pattern:
7 9 0
4 5
And sum them:
7+9+0+4+5 = 25
Так что n=2
результаты в 25
.
Третье число в последовательности рассчитывается следующим образом:
The length of the lines are 17 (because 3*6 - 1 = 17):
12345678910111213
14151617181920212(2)
Then leave the digits in the third/right-most Olympic Rings pattern:
1 2 3
0 1
And sum them:
1+2+3+0+1 = 7
Так что n=3
результаты в 7
.
и т.п.
Правила соревнований:
- Когда вы
n
выводите элемент 'th в последовательности, вам разрешается принимать входные данные как 0-индексированные вместо 1-индексированных, но имейте в виду, что вычисленияn*6 - 1
затем станут(n+1)*6 - 1
или(n+1)*5 + n
. - Отдельные числа, состоящие более чем из одной цифры, могут быть разделены в конце первой строки, когда мы достигли длины
n*5 + n-1
, поэтому возможно, что число с 2 или более цифрами будет частично завершающей частью строки 1, а частично ведущая часть линии 2.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - К вашему ответу применяются стандартные правила , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Также, пожалуйста, добавьте объяснение, если это необходимо.
Тестовые случаи:
Вот набор тестовых наборов 1-1000 , поэтому вы можете выбрать любой из них.
Некоторые дополнительные более высокие тесты:
1010: 24
1011: 24
2500: 19
5000: 23
7500: 8
10000: 8
100000: 25
1*5 + 1-1 = 5
? Не должно ли это быть1*5 + 5 - 1 = 9
?n=1
такn*5 + n-1
становится1*5 + 1-1
, что, в свою очередь, есть5 - 0 = 5
.n * 5 + n - 1
равноn * 6 - 1
?Ответы:
Шелуха , 16 байт
Попробуйте онлайн!
-3 байта благодаря H.PWiz .
(Бросился) объяснение:
источник
Сетчатка ,
706862 байтаПопробуйте онлайн!
объяснение
Давайте назовем вход n , и мы будем использовать
3
в качестве примера.Это
10**
сокращение,10*$&*_
которое заменяет ввод строкой из 10n подчеркиваний.Теперь мы заменим каждое подчеркивание длиной строки до того, включая это подчеркивание. Таким образом, это просто приводит к объединению числа от 1 до 10n ( 10n всегда достаточно, чтобы заполнить две строки необходимой длины).
Eval! На этом и следующем этапах будет сгенерирован исходный код другой программы, которая затем будет запущена для этой строки сцепленных целых чисел.
Чтобы сгенерировать эту программу, этот этап сначала заменяет целые числа строкой 6n подчеркиваний (
$+
относится к исходному вводу программы).Затем замените эти подчеркивания с
L`.{…}
, где…
находится 6n-1 (длина линий , которые мы ищем в). Итак, мы сгенерировали регулярное выражение, квантификатор которого зависит от исходного ввода.Когда эта программа получает значение eval'ed, она соответствует фрагментам длиной 6n-1 , из которых будет как минимум два. Для нашего примера ввода
3
мы получаем:Теперь нам просто нужно извлечь соответствующие цифры.
Сначала в каждой строке (
%
) мы удаляем все, кроме последних пяти цифр (,-6
). Это дает намВ заключение:
Мы расширяем все остальные цифры (
2
) в первой десятке (9
это основано на 0) в унарном виде. Это те, кто находится на позициях олимпийских колец.И мы подсчитываем количество результирующих подчеркиваний, суммируем их и преобразовываем результат в десятичную.
источник
1
.-7
Python 2 ,
9490 байтПопробуйте онлайн!
источник
Japt ,
333230292827 байтО, это не красиво!
Выводит n- й член, 1-индексированный.
Попытайся
объяснение
источник
Python 2 , 97 байт
Попробуйте онлайн!
источник
Python 3,
129123 байтаПопробуйте онлайн
Это в значительной степени запутано, но работает.
источник
05AB1E ,
222120 байтПопробуйте онлайн!
объяснение
Альтернативный 21-байтовый подход
источник
Желе , 19 байт
Попробуйте онлайн!
источник
J ,
61, 5857 байтПопробуйте онлайн!
источник
Рубин ,
65 6356 байтПопробуйте онлайн!
источник
Чисто ,
138101 байтПопробуйте онлайн!
источник
Java 8,
138111109 байтЯ, конечно, должен ответить на свой собственный вызов. :)
Я потерял свой исходный код, который использовал для создания результатов теста в описании задания, поэтому я только начал заново.
Объяснение:
Попробуйте онлайн.
источник