Вдохновленный этим постом . Для тех, кто помечает этот вопрос как дубликат, я призываю вас на самом деле прочитать вопрос, чтобы увидеть, что мой является модификацией связанного. Связанный не требует ввода и должен просто печатать алфавит по диагонали.
Соревнование
Учитывая ввод между 1-26 включительно, напечатайте алфавит по диагонали, но начните печатать вертикально в индексе данного ввода.
Примеры
Учитывая вход:
16
Ваша программа должна вывести:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Входные данные:
4
Выход:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Входные данные:
1
Выход:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Входные данные:
26
Выход:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
счет
Это код-гольф , поэтому выигрывает самый короткий ответ на каждом языке.
Удачи!
Ответы:
Древесный уголь , 9 байт
Попробуйте онлайн!
Как это работает
Это решение больше не работает в текущей версии Charcoal (скорее всего, из-за исправления ошибки), но проблема решена с помощью 10 байт
↘✂β⁰N↓✂βIθ
.источник
Iθ
вместоη
.)…βN
вместо✂β⁰N
.05AB1E , 11 байт
Первый раз пробую 05AB1E, так что я открыт для советов.
Попробуйте онлайн!
Если разрешен вход с нулевым индексом от
0
to25
, это может быть 10 байтов, опуская<
.источник
JavaScript (ES2017),
73727166 байтСохранено несколько байтов благодаря @JustinMariner
источник
10
послеz
в конце из-за наличия++x
доx.toString()
. Исправлены ошибки и игра в гольф до 68 байт с использованиемpadStart
: TIOn=>g=(x=26)=>x?f(x-1)+(x+9).toString(36).padStart(x<n?x:n)+'\n':""
Python 2,
61 5857 байт-3 байта благодаря Роду
-1 байт благодаря мистеру Xcoder
источник
input
, будет вызываться каждый раз, когдаfor
цикл повторяется, даже если есть только одна строка ввода.Рубин,
514643 байтаВозвращает список строк.
Похоже, что парни из Python что-то делали со своими подписчиками. -5 байт, вдохновленные улучшением решения Ppperry, предложенного г-ном Xcoder.
Предыдущее решение с
rjust
(51 байт):источник
Python 2 ,
625057 байтПопробуйте онлайн!
Кража сильно из этого ответа Деннис.
источник
R,
9989 байт@MickeyT сэкономил 10 байт
функция
демонстрация
источник
ifelse
попробуйmin
.print.noquote
может быть замененcat
на'\n'
в пасте.\n
Может быть прямой возврат каретки. Фигурные скобки для тела функции могут быть сброшены.write
вместо того ,cat
иpaste
:write(c(rep(" ",min(x,i)),letters[i]),"",26,,"")
Retina ,
7268 байтПопробуйте онлайн! Выходные данные включают конечные пробелы. Сохраните 1 байт, удалив пробел до
$
нумерации, если индексирование разрешено. Изменить: 4 байта сохранены с помощью генератора алфавита @ MartinEnder. Объяснение:Вставьте алфавит.
Диагонализируй это.
Преобразовать ввод в унарный как пробелы.
Обрежьте слишком длинные строки, чтобы ни одна строка не была длиннее пустой строки в конце.
источник
Mathematica, 103 байта
источник
Pyth ,
211715 байтСделано на телефоне с 3% заряда батареи.
Объяснение:
Попробуйте онлайн!
источник
Желе , 11 байт
Попробуйте онлайн!
источник
Common Lisp, 84 байта
Попробуйте онлайн!
источник
Python , 52 байта
Удивленный, никто не заметил, что очевидный подход был так же короток, как и другие.
Попробуйте онлайн!
Python , 53 байта
Попробуйте онлайн!
источник
Haskell,
5854 байтаПопробуйте онлайн!
Как это работает
Редактировать: @Lynn сохранил 4 байта. Благодарность!
источник
['`'..]!!m
.Java (OpenJDK 8) , 69 байт
Попробуйте онлайн!
источник
Gaia , 12 байт
Попробуйте онлайн!
объяснение
источник
JavaScript (Node.js) , 72 байта
Возвращает список строк.
Попробуйте онлайн!
источник
.padStart
padEnd
вместоrepeat
.Mathematica, 67 байт
Возвращает
SparseArray
строку. Чтобы визуализировать, добавьтеGrid@
спереди.Попробуйте это на Wolfram Sandbox
использование
источник
Python 2 , 52 байта
Попробуйте онлайн!
Я предполагаю, что список строк в порядке ...
Самое короткое, что я мог получить с рекурсией:
источник
SOGL V0.12 , 12 байт
Попробуй здесь!
источник
Python 3 , 52 байта
Попробуйте онлайн!
источник
C (gcc) , 50 байтов
Попробуйте онлайн!
источник
Протон , 40 байт
Предполагая, что список строк в порядке.
Попробуйте онлайн!
Протон , 49 байт
Как ASCII-арт вместо:
Попробуйте онлайн!
источник
C # (.NET Core) , 66 + 18 байт
Количество байтов также включает в себя
Попробуйте онлайн!
Это возвращает коллекцию строк, по одной для каждой строки. Если это не разрешено, ответ будет увеличен на 17 байт для
string.Concat()
и\n
внутри строкиОбъяснение:
источник
MATL, 14 байтов
Попробуйте это в MATL Online
объяснение
источник
Pyth , 12 байт
Попробуй это здесь!
Если списки строк разрешены, это может быть сокращено до 11 байтов :
Pyth , 12 байт
Попробуй это здесь!
Pyth , 14 байт
Попробуй это здесь.
Если списки строк разрешены, это может быть сокращено до 13 байтов :
Как это работает?
В отличие от большинства других ответов, это отображает / перебирает строчный алфавит во всех 3 решениях.
Объяснение № 1
Объяснение № 2
Объяснение № 3
источник
Haskell, 60 байт
Это функция, которая возвращает вывод в виде строки.
Попробуйте онлайн.
источник
Japt ,
1613 байтСохранено 3 байта благодаря @Oliver
Проверьте это онлайн!
источник
q / kdb +,
3331 байтРешение:
Пример:
Объяснение:
Создайте список пробелов (26 (до длины минимума ввода и диапазона
0..25
), объедините каждую букву алфавита, напечатайте в stdout.Заметки:
источник
Java 1.8 (без лямбды), 98 байт
Логика проста. Не обеспечивает проверки входных данных, очень плохо!
источник
for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);
Также, вы можете написать только функцию или лямбду вместо полной программы.a[0]
относится? Я думаю, что фрагменты не являются справедливыми, если они не компилируются; Задача столь же интересна с языком, богатым конструкциями.void f(int i){...}
(без статической необходимости) илиi->{...}
вместо всей вашей программы. Посмотреть все советы по Java . Смотрите мой ответ на этот же вызов , как пример. Веселитесь на сайте! :-)