Шестнадцатеричная система счисления с основанием 16, которая идет от 0
к f
. Ваша задача - создать счетчик, который будет отображать эти цифры.
Пример:
$ python counter.py
1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30
Правила:
- Числа могут быть разделены пробелами, символами табуляции или новыми строками.
- Минимальное число, на которое вы должны перейти -
30
48 (десятичное число).- Вы также можете заставить программу печатать номера навсегда, пока она не остановится.
- Буквы могут быть в верхнем или нижнем регистре (
A
илиa
). - Не допускаются встроенные функции (которые напрямую влияют на шестнадцатеричные преобразования / подсчет).
- Допускаются ведущие нули
- Это может начаться с
1
или0
- Самый короткий код выигрывает!
code-golf
hexadecimal
фаза
источник
источник
Ответы:
Pyth - 12 байт
Использует декартово произведение и сортирует в конце, чтобы получить в правильном порядке, затем соединяет пробелы. Принты
00-ff
включительно.Попробуйте это онлайн здесь .
источник
Чистый Баш , 26
Считает от 0x0 до 0x3F:
Попробуйте онлайн!
источник
CJam,
2114 байтовПечатает числа от 00 до 9F.
Попробуйте онлайн в интерпретаторе CJam .
Как это работает
источник
Python 2, 52
Печать
00
на3F
. Используется тот факт, что первая цифраa
всегда является числом в этом диапазоне. Выполняет цикл по четырем циклам второй цифрыb
, увеличиваясь,a
когда вторая цифраF
.Это на один символ короче, чем более прямой
источник
n ='0123'
следует сохранить некоторые символыthing in n + restofstring
n='0123' for a in n: for b in n+'456789ABCDEF':print a+b
0123
чего-либо еще недостаточно 4 символа .JavaScript (ES6), 57 байт
Такой же подход, как и у Python.
источник
TI-Basic, 63 байта
Это 63 байта, согласно экрану управления памятью на моем калькуляторе, TI-84 +. Обязательно запустите программу с частично заполненным домашним экраном!
источник
Befunge-93, 57 байт
Печатает числа от
00
до8F
. Если вы предпочитаете, чтобы ваши программы работали вечно, приведенная ниже версия не прекращается и будет постоянно выводить все числа из00
вFF
.источник
0123456789ABCDEF01g::88+/2-0g,88+%0g,9,1+01p
bef.c
), которая молча игнорирует неизвестные команды (ABCDEF
).30
- это будет медленно переполнять стек, поэтому я предполагаю, что есть некоторая точка завершения. Кроме того, вывод разделен табуляцией; ОП сказал, что это нормально. О, используемая вами реализация Befunge также должна инициализировать весь тор 80x25 с пробелами (ASCII0x20
).C
7875 байтМы определяем функцию
f()
для вызова без аргументов для печати и вспомогательную функциюx(int)
. Это ломает вFF
.Удивительно, но это на один байт короче, чем более очевидное:
Предупреждение: не рекомендуется запускать этот код вне среды отладки ...
Тестирование:
Вывод:
Конечно, более надежный (и обманчивый) подход - это 34-байтовая функция:
источник
return y+
могло бы бытьy+=
.Pyth, 17 байт
Попробуй здесь
Как это работает:
источник
jb^+jkUT<G6 2
использует декартово произведение, чтобы сделать то же самое, все еще кажется пригодным для игры в гольф ...Javascript ES6,
6762 байтаисточник
J, 22 байта
Считает до
ff
. Печатает дополнительную новую строку между каждым блоком0x10
чисел, например так:источник
Свинка - 65 байт
Нет ... Свинка еще не умерла! :-)
источник
CJam, 22 байта
Это работает вечно, и , таким образом, вероятно , один из редких случаев , где это хорошая идея не включать постоянную ссылку.
источник
oNo
такой же, какn
в TIO.TheC64Mini и Commodore BASIC (C64 / 128, PET, VIC-20, C16 / + 4) - используется 164 BASIC и токенизированных байта
Печатает двойной пробел после шестнадцатеричного числа для точного выравнивания печати в столбцах 40/80, а также в 22 столбцах VIC-20.
источник
брейкфак , 2902 байта
Легко переиграть, но стоит попробовать
Попробуйте онлайн!
источник
0-F
а затем жестко закодируете печать. Как вам удалось сделать это так долго?Python 2,
6655 байтЭто действительно должен был быть самый очевидный подход ко мне ..
Старый (66 байт) : Технически это вызывает ошибку после
FF
, но он достигает30
.Я предполагал, что форматирование строк не было разрешено, так как я почти уверен, что оно пройдет базовое преобразование, но если бы оно было разрешено, это было бы 29 байтов:
источник
Java, 104 байта
Если
i<99
он удален, он все равно достигает 30, но в конечном итоге вылетает. Я не уверен, что это приемлемо.источник
J, 47 байт
печатает от 00 до ff
источник
>{;~'0123456789abcdef'
JavaScript
74726560источник
Perl 6 , 34 байта
Самое короткое, что я могу придумать, не использующее какое-либо преобразование:
печатает
00
...FF
пробел в порядке.Если вы хотите больше, вы можете поменять
2
на большее число.(не используйте число больше 4, так как оно объединяет значения перед выводом чего-либо, поэтому оно будет использовать значительное количество оперативной памяти)
Самое короткое, что никогда не перестанет писать шестнадцатеричные значения
Если бы
printf
было разрешеноЕсли бы была разрешена базовая функция преобразования
источник
С ++ 14 - 135
источник
'string' is not a member of 'std'
с моим.cout
. Я думаю, тебеiostream
тоже нужно . 2. Он печатает номера без разделения. Задача требует пробелов, табуляции или новых строк. 3. Вы должны упомянуть требуемую версию C ++.JQ 1,5:
6559 символов(56 символов кода + 3 символа командной строки.)
Образец прогона:
Он-лайн тест (пропуск
-r
через URL не поддерживается - проверьте Raw Output самостоятельно.)JQ 1,5: 56 символов
(53 символа кода + 3 символа командной строки.)
Это дает правильный вывод, но не является точным счетчиком: он не генерирует значения по порядку, а просто сортирует их после.
Он-лайн тест (пропуск
-r
через URL не поддерживается - проверьте Raw Output самостоятельно.)источник
Дьялог АПЛ , 12 байт
источник
Malbolge , 900 байт
Быть улучшенным ...
Попробуйте онлайн!
источник
Zsh,
4429 байт-15 , через GammaFunction попробуйте онлайн!
Оригинал (44 байта):
g=0123456789abcdef;h=(${(s::)g});echo $^h$^h
источник
h=({0..9} {a..f})
. 29 байтPowerShell 6, 40 байт
Попробуйте онлайн!
Начинается с
00
и считается доFF
.источник
Сборка 8088, IBM PC DOS, 34 байта
Байт
xxd
:разобранное:
Точность автономного ПК DOS, вывод на консоль и будет отображаться до остановки программы. Просто программа для работы с ASCII. В API x86 или DOS / BIOS просто нет встроенных или удобных методов для преобразования двоичных значений в строки для вывода.
Вывод:
источник
MUMPS , 57 байт
Вывод
объяснение
источник
Haskell, 52 байта
источник
Python 2 - 57 байт
Это выводит от 00 до FF с пробелами между ними.
источник