Вызов:
Создайте программу, которая принимает входные положительные ненулевые целые числа и выводит 4 следующих числа в последовательности, описанной ниже.
Примечание: проверка, является ли входное значение на самом деле положительным ненулевым целым числом, не требуется
Последовательность:
Каждое число в этой последовательности (кроме первого, являющегося входом) должно состоять из n цифр, где n - четное число. Если мы разделим число на n / 2 пары, для каждой пары первая цифра должна быть количеством раз, когда вторая цифра появилась в предыдущем числе
Визуальное объяснение :
рассмотрим в этом примере «стартер последовательности» или ввод 6577
Следующее число в последовательности должно выглядеть следующим образом, 161527
потому что вход имеет 1 «6», 1 «5» и 2 «7» с.
Если на входе слишком много цифр (более 9 от одной цифры), вы не сможете получить правильный вывод.
Пример: 111111111111
(12 1)
Следующий номер в последовательности должен описывать 12 1. Таким образом, мы разбиваем его на 9 1 и 3 1 (сумма 9 + 3 = 12).
Следующее число:9131
Вы должны выполнить итерацию 4 раза для ввода и вывести его (либо вернуть список / массив из 4 целых чисел, либо вывести его, разделив их пробелом, переводы строки также допустимы)
«Число можно записать разными способами, как мне его написать?» :
Если подумать, пример ввода 6577
также можно записать как 271516 (две 7, одна 5, одна шесть). Однако это неверный вывод. Вы должны повторить число слева направо. Таким образом, 161527. Если бы 7657
вы итерировали количество 7, то количество 6, а затем количество 5, таким образом, действительный результат будет271615
Пример ввода / вывода:
Вход: 75
Выход:1715 211715 12311715 4112131715
Вход: 1
Выход:11 21 1211 3112
Вход: 111111111111
(12 1)
Выход:9131 192113 31191213 23411912
Это не похоже на вопрос «Скажи, что ты видишь», потому что последовательности отличаются: https://oeis.org/A005150 <- Этот возвращает числа, подобные этому:
Вход: 1211 Выход: 111221
В то время как последовательность я спрашиваю будет делать
Вход: 1211 Выход: 3112
Эти две последовательности различны и требуют разных алгоритмов.
Моя запрашиваемая последовательность: https://oeis.org/A063850
«Возможная копия»: https://oeis.org/A005150
Важная спецификация:
Поскольку для некоторых людей, которые пытались ответить на этот вопрос, было недостаточно ясно, правильный вывод для k символов, где k> 9 - это не «kc» (где c это char), а 9c (k-9) c и т. Д. Таким образом, правильный вывод для 12 1 не 121
(12 1), но 9131
(9 1, (12-9) 1 и т. Д.)
Если вы сомневаетесь, ваш код неверен, если он когда-либо выводит число с нечетным количеством цифр (например, 121), он должен иметь вывод четных чисел из-за характера последовательности.
Это код-гольф, поэтому код с наименьшим количеством байтов выигрывает.
источник
1111111111111111111
(19 1-е )23411912
вместо23411219
?Ответы:
PowerShell ,
111104 байтаПопробуйте онлайн!
источник
$i
в своем цикле, почему бы просто не зациклить прямо как$z=$args;0..3|%{...
$args
(и я первоначально думал, что буду использовать$i
). Я собирался измерить это, но тогда вопрос был закрыт.Python 2 , 116 байт
Попробуйте онлайн!
источник
1111111111111111111
некорректен. Должно быть,919111
но дает919121
11
выводом должно быть21 1211 3112 132112
, я не понимаю, почему он выводит111
в качестве первой итерации, из-за которой вся цепочка работает плохо05AB1E ,
302321 байтПопробуйте онлайн!
объяснение
источник
Mathematica, 117 байт
Похоже, это не должно быть так долго.
источник
C # 246 байт
Ungolfed:
Попробуйте здесь (введите input в нижний фрейм после его компиляции и нажмите ENTER)
источник
Желе , 27 байт
Попробуйте онлайн!
Последовательные
€
s не могут быть вложенными, потому что цепочки не могут быть вложенными.Вложенность с отдельной ссылкой: 27 байт.
Печать вместо кумуляции: 27 байт.
объяснение
источник
PHP, 141 байт
Попробуйте онлайн!
источник