проблема
Учитывая положительное целое число, n
гдеn < 100
Выведите ромбовидный узор следующим образом:
вход n=1
/\/\
\/\/
Вход n=2
:
/\ /\
//\\/\/\//\\
\\//\/\/\\//
\/ \/
Вход n=3
:
/\ /\
//\\ /\ /\ //\\
///\\\//\\/\/\//\\///\\\
\\\///\\//\/\/\\//\\\///
\\// \/ \/ \\//
\/ \/
Вход n=4
:
/\ /\
//\\ /\ /\ //\\
///\\\ //\\ /\ /\ //\\ ///\\\
////\\\\///\\\//\\/\/\//\\///\\\////\\\\
\\\\////\\\///\\//\/\/\\//\\\///\\\\////
\\\/// \\// \/ \/ \\// \\\///
\\// \/ \/ \\//
\/ \/
И так далее.
правила
- Программа и функция разрешены.
- Конечный пробел разрешен.
- Ведущие пробелы в строках с номерами no
/
или\
позволены. - Трейлинг и ведущие новые строки разрешены.
- Самый короткий код в байтах побеждает
Ответы:
SOGL V0.12 , 24 байта
Попробуй здесь!
Объяснение:
источник
╬
, это больная команда.╬
lolДревесный уголь ,
3027 байтовПопробуйте онлайн! Ссылка на подробную версию кода. Пояснение: Примитивы рисования Древесного угля не могут полностью нарисовать алмаз, потому что движения по диагонали остаются на квадратах одинаковой четности. Изменить: Новое решение состоит в том, чтобы нарисовать одну сторону алмаза, а затем повернуть весь холст, готовый нарисовать следующую сторону, что позволяет рисовать алмаз в цикле. Эта петля затем содержится в петле, чтобы нарисовать все внутренние алмазы для каждого алмаза. Самая внешняя петля рисует все алмазы, смежные друг с другом. Наконец изображение отражается.
Обратите внимание, что с тех пор Charcoal был расширен, и другой байт можно было сохранить с помощью
Increment
.источник
APL (Dyalog) ,
706966 байтПопробуйте онлайн!
Предполагается
⎕IO←0
, что является стандартным для многих систем, поэтому программа имеет индекс 0.Это tradfn, который принимает данные через STDIN.
объяснение
(немного устаревший)
Обратите внимание, что
⍺
это левый аргумент,⍵
это правый аргумент и⍺⍺
левый оператор.B
это функция, которая помогает в отражении алмазов. Он принимает строку в качестве правого аргумента и обратную функцию в качестве левого (B
как и оператор).И теперь мы переходим к основной части программы.
Это необходимо для обеспечения того, чтобы все треугольники, созданные для каждого элемента в диапазоне,
⌽⍳A
имели одинаковую высоту, чтобы впоследствии их можно было соединять друг с другом.Теперь верхняя левая часть шаблона завершена. Осталось только перевернуть его вертикально, а затем горизонтально.
Вот и все! Вывод представляет собой символьную матрицу с
/\
s и дополненную пробелами.источник
05AB1E ,
47434135343332 байтаПопробуйте онлайн!
(-4 байта благодаря @Emigna, который предложил 3 улучшения)
Это объяснение было для более ранней версии, с тех пор было несколько итераций.
источник
η
вместо суффиксов, так как они одинаковы для этой строки.N£
такой же как и¨
здесь и€R
естьí
.CJam ,
6563 байтаПопробуйте онлайн!
объяснение
В этом объяснении я буду ссылаться на входной номер как
n
.источник
e#
в объяснении?#
- это не комментарий в CJam - sourceforge.net/p/cjam/wiki/Basic%20operators/#number-sign - хотя это и есть на многих других языках. Поскольку CJam является языком игры в гольф, все односимвольные команды используются для соответствующей гольф-функциональности. Комментарии полезны только для незакрашенного кода, поэтому он использует двухсимвольную последовательность, таким образом освобождая односимвольную последовательность для чего-то другогоPython 2 ,
152147143140 байт-1 байт благодаря musicman523
Попробуйте онлайн!
Это работает путем измельчения внутренних столбцов самого большого ромба, чтобы получить меньшие, используя
[0,..,n,n,..,0]
для управления количество столбцов, которые нужно удалить.источник
r=r+
наr+=
Pyth,
3532 байтаТестирование
Сделано, чтобы увидеть, как подходы my и @ LeakyNun будут отличаться.
источник
Дьялог АПЛ, 46
источник
{}
к вашему ответу, как они должны быть включены.Pyth , 49 байтов
Попробуйте онлайн!
источник
V , 38 байт
Попробуйте онлайн!
источник