Простой: возьмите список положительных целых чисел в качестве входных данных и выведите модуль чисел их индекс на основе 1 в списке.
Если входные целые числа являются {a, b, c, d, e, f, g}
тогда, выходные данные должны быть, {a%1, b%2, c%3, d%4, e%5, f%6, g%7}
где %
- оператор модуля.
Тестовые случаи:
10 9 8 7 6 5 4 3 2 1
0 1 2 3 1 5 4 3 2 1
8 18 6 11 14 3 15 10 6 19 12 3 7 5 5 19 12 12 14 5
0 0 0 3 4 3 1 2 6 9 1 3 7 5 5 3 12 12 14 5
1
0
1 1
0 1
Python 2 , 35 байт
Попробуйте онлайн!
Подсчитывает индекс вручную, согласно кончику моего .
источник
Желе , 2 байта
Попробуйте онлайн!
Объяснение:
По сути, код модулирует исходный список списком индексов.
источник
%J
в желе, интересно, кто-нибудь ответил таким ответом?». Я думаю, у кого-то еще была такая же идея :-DR,
2418 байтОценивает функцию:
Который используется
seq_along()
для создания вектора такой же длины, какx
, начиная с 1, а затем%%
взять по модулю.Поведение по умолчанию
seq
при представлении с вектором -seq(along.with = x)
это тот же вывод, чтоseq_along(x)
и на 6 байт.источник
seq(x)
это удобная вещь, чтобы иметь вокруг, так как я всегда использую1:length(x)
.R, 27 байт
сэкономили 5 байт благодаря @Jarko
спас 4 еще больше благодаря @Giuseppe
спасли еще 2 благодаря @Taylor Scott
Сохранено еще 2 благодаря @returnbull
источник
' '
(пробел) в концеcat
; это разделитель по умолчаниюx<-scan();cat(x%%1:length(x)," ")
- о, и пару советов по форматированию, 1) вам нужно всего 4 пробела слева от кода, чтобы он был правильно отступ и помечен 2) вы можете добавить<!-- language-all: lang-r -->
флаг до того, как ваш код будет выделен (хотя в этом примере это мало меняется) 3) вам не нужны скобки вокруг названия вашего языка 4) о, и вам не нужно комментировать, когда вы вносите изменения в сообщение=
вместо того,<-
чтобы сохранить байт. (2) Спецификация говорит «вывод», а не «печать», так что вы, вероятно, можете отброситьcat()
, сохранив 5 байтов. (3)sum(1|x)
на один байт меньше, чемlength(x)
.APL (Dyalog) , 5 байтов
Попробуйте онлайн!
⍳
индексы∘
из≢
длина аргумента|
этот модуль⊢
Аргументисточник
(~T∊T∘.×T)/T←1↓⍳R ⍝ primes up to R
илиlife←{↑1 ω∨.∧3 4=+/,¯1 0 1∘.⊖¯1 0 1∘.⌽⊂ω} ⍝ Game of Life
(⊢~∘.×⍨)1↓⍳R
и GoL (в версии 16.0):K∊⍨⊢∘⊂⌺3 3
где K - константа.Cubix , 19 байт
Попробуйте онлайн!
Смотреть это работает
Довольно прямолинейная реализация.
1
нажмите 1 в стек, чтобы начать индексI!@
получить целочисленный ввод и остановить, если 0s%Ow
поменяйте местами индекс, мод, вывод результата и смену полосы движения;)
удалить результат и индекс приращенияSow
нажмите 32, выходной пробел и смените полосу движения (в направлении от o)$O
прыгать на выходеw;w
смените lange, удалите 32 из стека и смените полосу наI
входисточник
05AB1E , 2 байта
Попробуйте онлайн! или попробуйте все тесты
источник
DgL%
хорошо.gL%
потому что я забыл оā
.ā
? Я полагаю, что никогда не использовал это, просто так,for each
но1 to n+1
так, как этоvy<code>})
подразумеваетсяvy<code>})
?gL
. TIOMathematica, 22 байта
Еще один подход Mathematica.
источник
MapIndexed@Mod
это почти достаточно хорошо: '(Звездный ,
7570 байтПопробуйте онлайн!
объяснение
Это бесконечный цикл, который продолжает чтение чисел с входа и увеличивает счетчик, инициализированный в
1
. Для каждой пары ввода и счетчика модуль вычисляется и печатается.Чтобы завершить цикл, когда вход исчерпан, используется следующий прием. Когда больше нет доступных входных данных, попытка прочитать еще один номер дает
0
. Таким образом, мы делим прочитанное число на себя, и если это так,0
программа завершается с ошибкой. Иначе мы отбрасываем результат и продолжаем.источник
MATL ,
4, 3 байтаПопробуйте онлайн!
Один байт сохранен благодаря @LuisMendo!
источник
Брахилог , 9 байт
Попробуйте онлайн!
объяснение
источник
Japt,
54 байтаПопытайся
объяснение
источник
®%°T
(на самом деле, вы все равно можете использовать егоY
там, если хотите)R, 22 байта
R выполняет 1: длина (х), прежде чем делать модуль.
источник
sum(x|1)
!seq()
вместоseq_along()
делает то же самое. Так что это снова на несколько байтов.Python 2 , 42 байта
Попробуйте онлайн!
источник
for
lambda l:[v%-~i for i,v in enumerate(l)]
lambda l:[v%i for i,v in enumerate(l,1)]
.Haskell, 22 байта
Попробуйте онлайн!
Кроме того :
flip(zipWith mod)[1..]
.источник
Mathematica, 21 байт
Попробуйте онлайн!
или 20 байтов (Мартином)
источник
Tr[1^#]
дляLength@#
.#
качестве второго последнего символа в вашем первом ответе.Excel VBA,
5946 байтGolfed
Anonymous VBE Функция непосредственного окна, которая принимает
строку массива с разделителем- пробелом в качестве входных данных из диапазона
[A1]
и выводит модуль чисел с их индексом на основе 1 в начальном списке в непосредственное окно VBEВвод, вывод:
Старая
Sub
рутинаПодпрограмма, которая принимает входные данные как переданный массив и выводит их в непосредственное окно VBE.
Вход / выход:
Ungolfed
Ввод, вывод:
источник
CJam , 9 байт
Анонимный блок, который ожидает массив в стеке и заменяет его выходным массивом.
Попробуйте онлайн!
объяснение
источник
J, 9 байт
1 ... n | оригинальный список
|
модисточник
JavaScript (ES6), 22 байта
источник
AWK, 13
Попробуйте онлайн .
источник
ткл, 35
демонстрация
источник
GNU APL 1.2, 9 байт
APL работает справа налево, отсюда и круглые скобки.
R←⎕
назначает пользовательский ввод для вектораR
.⍴R
дает длину вектора;⍳⍴R
дает вектор со всеми числами от 1 до этой длины (поэтому индексы).|
является оператором мод (a|b
выходовb%a
). APL работает с массивами, поэтому код отрывает вектор, содержащий каждый элемент из пользовательского ввода, его индекс.источник
Пари / ГП , 22 байта
Попробуйте онлайн!
источник
Пиф, 5
Интернет тест .
источник
Октава , 19 байт
Попробуйте онлайн!
Анонимная функция, которая принимает n в качестве входных данных и выполняет поэлементный модуль со списком 1, 2, 3 .
источник
Брайнгольф , 18 байт
Попробуйте онлайн!
объяснение
источник
Java 8 / C #, 39 байт
Попробуй это здесь.
Также работает в C #, заменяя
->
на=>
иlength
сLength
:Попробуй это здесь.
Объяснение:
Изменяет массив ввода, отсюда и отсутствие возврата.
источник
->
на=>
и используете заглавные буквыlength
.