Я абсолютно ненавижу цифру 1
. Итак, мне нужна ваша помощь, чтобы преобразовать числа в их «правильные формы».
Числа в правильной форме никогда не имеют двух 1
s подряд. 101
это нормально, но 110
отвратительно
Чтобы конвертировать, просто пропустите все неправильные числа и считайте как обычно. Например...
1 -> 1
2 -> 2
...
10 -> 10
11 -> 12
12 -> 13
...
108 -> 109
109 -> 120
110 -> 121
111 -> 122
и так далее.
Ваша программа должна взять целое число и вывести его в правильной форме. Это код-гольф , поэтому выигрывает самый короткий код в байтах.
109 -> 120
преобразование ...Ответы:
Бурлеск , 10 байт
{11 ~ [п!} FO
Старые версии:
источник
Perl 5 , 34 байта
Зацикливание счетчика и замена случайного двойного.
Тестовое задание
источник
Утилиты Bash + GNU, 36
источник
1$1
достаточно, а не$1$1
?Pyth,
1311 байтСохранено 2 байта благодаря @FryAmTheEggman.
Живая демоверсия и тестовые случаи.
13-байтовая версия
источник
JavaScript, 53 байта
Альтернатива (с использованием пониманий одинаковой длины):
источник
Python 2, 50
Анонимная функция, которая перечисляет номера, не содержащие
11
в порядке, и принимаетn
один. Непостоянная ошибка нулевой индексации отменяется при включении0
в список.Теоретически, это не удастся для достаточно больших чисел, где
f(n)>2*n
, но это не должно произойти, покаn
, по крайней мере10**50
.51 байт:
Считает числа
i
до тех пор, покаn
не11
будет достигнута квота чисел без .Функция имеет одинаковую длину из-за необходимости внесения отдельных поправок.
источник
Python 3 74
Еще нужно немного поиграть в гольф.
Это довольно грубая сила прямо сейчас.
источник
Perl 5, 47 байт
источник
JavaScript (ES6) 41
Как анонимная функция
Примечание: самый простой способ будет 44:
Попробуйте запустить фрагмент ниже.
источник
Haskell, 51 байт
Пример использования:
([x|x<-[0..],notElem('1','1')$zip=<<tail$show x]!!) 110
->121
.Как это устроено:
источник
MUMPS, 37 байт
Довольно просто. Единственная «интересная» вещь здесь - это конструкция
j'[11
-'[
это оператор «не содержит», так что"abc"'["ab"
это ложно и"abc"'["cd"
верно. Несмотря на оба операндаj'[11
являются числами, MUMPS остается невозмутимым. Он с радостью автоматически приведёт оба операнда к строкам и продолжит свою жизнь. Ура!(Кстати, если вы все в порядке с программой никогда не завершение, мы можем сократить это до 35 байт:
t2(i) f j=1:1 s:j'[11 k=k+1 w:k=i j
)источник
PHP, 43 байта
источник
Рубин, 24 байтаНеправильно истолковал задачу, буду переделывать позже!
источник
11
. Например,12
должен дать13
, а не12
.