Последовательность Sixers - это имя, которое можно присвоить последовательности A087409 . Я узнал об этой последовательности в видео Numberphile , и она может быть построена следующим образом:
Сначала возьмем кратные 6, записанные в базе 10:
6, 12, 18, 24, 30, 36, ...
Затем объедините числа в поток цифр:
61218243036...
Наконец, перегруппируйте поток в пары и интерпретируйте каждый как целое число:
61, 21, 82, 43, 3, ...
Поскольку мы группируем числа в пары, максимальное число в последовательности будет 99, и получается, что все неотрицательные целые числа меньше 100 представлены в последовательности. Эта задача состоит в том, чтобы найти индекс первого экземпляра числа в последовательности Sixers.
вход
Целое число в диапазоне [0-99]
. Вам не нужно учитывать числа, выходящие за пределы этого диапазона, и ваше решение может иметь любое поведение, если дан такой ввод.
Выход
Индекс первого вхождения входного числа в последовательности Sixers. Это может быть 0- или 1-индексированный; пожалуйста, скажите, что вы используете в своем ответе.
правила
- Процедура генерации последовательности, отмеченная во введении, предназначена только для иллюстративных целей, вы можете использовать любой понравившийся вам метод, если результаты совпадают.
- Вы можете представить полные программы или функции.
- Разрешены любые разумные методы ввода и вывода.
- Стандартные лазейки запрещены.
- Рекомендуется использовать ссылки для проверки вашего кода онлайн!
- Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке!
Контрольные примеры
Вот список всех входов и выходов в формате input, 0-indexed output, 1-indexed output
.
0 241 242
1 21 22
2 16 17
3 4 5
4 96 97
5 126 127
6 9 10
7 171 172
8 201 202
9 14 15
10 17 18
11 277 278
12 20 21
13 23 24
14 19 20
15 29 30
16 32 33
17 297 298
18 35 36
19 38 39
20 41 42
21 1 2
22 46 47
23 69 70
24 6 7
25 53 54
26 22 23
27 11 12
28 62 63
29 219 220
30 65 66
31 68 69
32 71 72
33 74 75
34 49 50
35 357 358
36 80 81
37 83 84
38 25 26
39 89 90
40 92 93
41 27 28
42 42 43
43 3 4
44 101 102
45 104 105
46 8 9
47 177 178
48 110 111
49 13 14
50 28 29
51 119 120
52 122 123
53 417 418
54 79 80
55 128 129
56 131 132
57 134 135
58 55 56
59 437 438
60 140 141
61 0 1
62 31 32
63 75 76
64 5 6
65 120 121
66 82 83
67 10 11
68 161 162
69 164 165
70 58 59
71 477 478
72 170 171
73 173 174
74 34 35
75 179 180
76 182 183
77 497 498
78 85 86
79 188 189
80 191 192
81 18 19
82 2 3
83 78 79
84 93 94
85 7 8
86 37 38
87 168 169
88 12 13
89 228 229
90 88 89
91 218 219
92 221 222
93 224 225
94 64 65
95 557 558
96 230 231
97 233 234
98 40 41
99 239 240
6, 2*6, 3*6,..., 325*6
достаточно для генерации всех возможных значений00
01
02
Ответы:
JavaScript (ES6),
71 6555 байтВывод 0 проиндексирован.
Попробуйте онлайн!
Как?
Используя рекурсивную функцию, мы либо «потребляем» первые 2 символа строки сцепленных кратных6 , либо добавляем новые символы, если у нас их меньше 2.
Пример дляn=3 :
комментарии
источник
Python 2 ,
9392858381686559 байтПопробуйте онлайн!
источник
f=lambda n,s='612',i=3:n-int(s[:2])and f(n,s[2:]+`i*6`,i+1)or i-2
f=lambda n,s='612',i=18:n-int(s[:2])and-~f(n,s[2:]+`i`,i+6)
(0-проиндексировано).Perl 6 , 31 байт
Попробуйте онлайн!
Использует 1-индексированную последовательность.
Объяснение:
источник
Haskell ,
82 ... 65 5854 байтаПопробуйте онлайн!
источник
05AB1E , 9 байтов
0 индексированные. Принимает в качестве входных данных одно целое число или список целых чисел.
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник
100
,"100"
и100.0
одинаковы для большинства функций, таких как равные проверки и тому подобное. В 05AB1E все еще есть функции приведения к типу int и преобразования к строковым функциям для некоторых функций, таких как сортировка (числовая или лексикографическая сортировка) или для удаления десятичных цифр после запятой из числа с плавающей точкой при приведении к int, но они не так часто используются. ,Древесный уголь , 12 байт
Попробуйте онлайн! Ссылка на подробную версию кода. 0 индексированные. Объяснение:
источник
J ,
2926 байт-3 байта благодаря FrownyFrog!
Попробуйте онлайн!
0 на основе
источник
i.~_2(".\;)6<@":@*1+i.@325
APL (Dyalog Unicode) , 26 байт
Попробуйте онлайн! - Тесты для всех действительных входных данных.
Как:
источник
⍴
но APL меня пугает ...⍴
это перестройка APL. Поэтому, если вы хотите изменить форму сплющенного вектора, вам просто нужно это сделать<new shape vector> ⍴ <vector to reshape>
Python 3 ,
8781 байт:целочисленный ввод, 0-индексированный вывод.
Попробуйте онлайн!
-6 байт, благодаря @TFeld.
источник
Wolfram Language (Mathematica) , 74 байта
Попробуйте онлайн!
2 байта сохранены из @Expired Data
источник
Брахилог , 14 байт
Попробуйте онлайн!
Слишком медленно для тестовых случаев с большими выходами.
источник
R ,
7562 байта-13 байтов благодаря Джузеппе.
Попробуйте онлайн!
источник
MathGolf , 10 байт
Попробуйте онлайн!
По сути то же самое, что и ответ 05AB1E, но я теряю байт из-за явного преобразования преобразованного числа в строку.
объяснение
источник
APL + WIN, 37 байт
Запрашивает ввод целого числа. 1 проиндексировано.
Попробуйте онлайн! Дежурство Дьялог Классик
источник
C # (интерактивный компилятор Visual C #) ,
123 байта,115 байтовПопробуйте онлайн!
источник
f(61)
должна вернуться0
(похоже, что ваше решение 0-проиндексировано)K (ок) , 22 байта
Решение:
Попробуйте онлайн!
Объяснение:
0 индексированные.
источник
Желе , 10 байт
Попробуйте онлайн!
Ссылка TIO дает все значения от 0 до 99.
объяснение
источник
Java 10,
119104102 байтаПорт ответа @TFeld 's Python 2 .
-2 байта благодаря @Imus .
1-индексироваться.
Попробуйте онлайн.
Объяснение:
Оригинальная версия
119117 байт:0 индексированные.
Попробуйте онлайн.
Объяснение:
источник
CJam , 17 байт
Попробуйте онлайн!
0 на основе.
объяснение
источник
""
, но не содержат встроенных0
или""
иногда полезными для циклов, потому что они часто являются желаемыми начальными значениями. Что касается отсутствия100
или1000
, да, я согласен, что они были бы более полезными, чем сказать18
или19
:~
иi
из своего кода. :(Japt , 12 байт
0 индексированные.
Попробуйте или проверьте все входы
источник
Красный ,
9794 байтаПопробуйте онлайн!
источник
Stax , 11 байт
Запустите и отладьте его
Ввод является целым числом. Вывод 0 проиндексирован.
источник
Perl 5
-MList::Util=any -ap
, 50 байтПопробуйте онлайн!
1 основанный вывод
источник
Retina ,
8377 байтУ меня действительно нет практики в сложном программировании в Retina, но я доволен длиной, в которой мне удалось это сделать.
Выводит 0-индексированный результат.
Попробуйте онлайн
объяснение
источник
Swift 5 / Xcode 10.2.1 ,
140134133 байтаПопробуйте онлайн!
источник
Сетчатка 0.8.2 , 36 байт
Попробуйте онлайн! Ссылка включает тестовый набор. 1-индексироваться. Объяснение:
Префикс 2406
_
с на входе.Заменить каждые 6
_
с числом предыдущих_
с. Это порождает последовательность0
,6
,12
...2400
, но автоматически присоединяет номера.Пропустите начальный 0 и найдите первую пару цифр, которые соответствуют двум последним цифрам, т. Е. Вводу с нулевым отступом (поскольку строка заканчивается
0
; фактически, набор тестов использует тот факт, что она заканчивается00
).Выведите количество пар цифр до и включая совпадение.
Сетчатка 1 сохраняет пару байтов, потому что ее оператор повторения строк является байтовым короче и уже по умолчанию имеет значение
_
своего правого операнда, так что вторая строка кода становится справедливой и умножается на 6 при замене. Примечательно, что это также не влияет на общее количество байтов, так как конечный результат выглядит следующим образом:2406*
. Еще одна особенность Retina 1 - это>
модификатор, который генерирует подстановку в контексте разделителя после совпадения, что в случае$.>`
заставляет его включать длину совпадения в результат. Хотя это стоит байт, мы сохраняем его немедленно, поскольку нам не нужно сопоставлять0
. (Количество повторений также должно быть уменьшено на 6.) Сетчатка 1 также может выполнять базовую арифметику в замене. Это означает, что нам не нужно прибегать к уловкам, чтобы брать кратные 6, вместо этого мы просто генерируем числа1..400
источник
Баш , 80 байт
1-индексироваться.
Попробуйте онлайн!
источник
C # (интерактивный компилятор Visual C #) , 88 байт
Попробуйте онлайн!
Другой порт Java и Python отвечает.
Мой оригинальный ответ ниже:
C # (интерактивный компилятор Visual C #) , 102 байта
Попробуйте онлайн!
Оба решения используют индексирование на основе 1.
источник
Рубин , 46 байт
Попробуйте онлайн!
источник
Clojure, 102 байта
Пока! :(
источник