Это торт
_========_
| |
+________+
| |
+________+
| |
+________+
Это 8 в ширину, 3 в высоту и 1 в глубину.
Вы должны написать программу, которая делает торт из 3 входов. Первый вход определяет количество подчеркиваний в середине и =
s вверху. Вот первый торт шириной 10 вместо 8:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
Второй вход контролирует, насколько высокий торт. Вот второй пирог с высотой 4 вместо 3:
_==========_
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Обратите внимание на повторение слоев.
Третий вход управляет глубиной. Вот только сколько | |
нужно включить в топ. Вот третий торт с глубиной 2 вместо 1:
_==========_
| |
| |
+__________+
| |
+__________+
| |
+__________+
| |
+__________+
Вы можете распечатать конечный пробел. Тестовые случаи:
Вход: 3
, 3
,3
Выход:
_===_
| |
| |
| |
+___+
| |
+___+
| |
+___+
(Надеюсь, я никогда не получу этот торт)
Вход: 3
, 2
,1
Выход:
_===_
| |
+___+
| |
+___+
Вход: 5
, 5
,5
Выход:
_=====_
| |
| |
| |
| |
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
| |
+_____+
Ответы:
V ,
25, 20 байтовПопробуйте онлайн!
HexDump:
Спасибо @ nmjmcman101 за сохранение трех байтов и напоминание мне о старом операторе, который сохранил еще два байта.
Объяснение:
a
,b
Иc
являются три аргумента.источник
Ò r|$.
сÒ|è
на несколько байт. Попробуйте онлайн!è
даже существовал. Мне пришлось ломать голову, чтобы вспомнить, что он делает. Но это действительно умно! Фактически, используя прописные буквы,È<char>
возможно , можно сохранить еще несколько байтов и в нескольких других местах. Спасибо за напоминание! :)Древесный уголь ,
3426 байтПопробуйте онлайн! Ссылка на подробную версию кода. Принимает параметры в порядке ширина, глубина, высота. Объяснение:
источник
Mathematica, 167 байтов
источник
PHP> = 7.1, 104 байта
Онлайн версия
источник
for([,$w,$h,$t]=$argv;$i<2*$h+$t;)echo str_pad($e="_|+"[$b=$i++<$t?$i>1:2-($i-$t&1)],$w+1,"= _"[$b])."$e\n";
$b=$i++<$t?$i>1:1+$_++%2
.Рубин , 62 байта
Попробуйте онлайн!
источник
Japt ,
5147 байтПопробуйте онлайн!
Ввод берется в порядке ширина, высота, глубина.
источник
Желе ,
3029 байтПереключение на -1 байт от дополнения к XOR для перевода между внешним и внутренним столбцами, что позволяет выполнять поиск из 5 символов вместо двух
_
записей.Полная программа принимает три аргумента программы из
depth
,height
,width
и печати торта.Попробуйте онлайн!
Как?
источник
постоянный ток , 108 байт
Попробуйте онлайн!
источник
Röda , 65 байт
Попробуйте онлайн!
источник
Java 7 ,
169164158 байтПопробуйте онлайн!
Ungolfed:
источник
u=t+u+"+\n" inside the for-loop:
для (u = t + u + "+ \ n; a [2] -> 1;) s + = t;`. Но хороший ответ, +1 от меня.05AB1E ,
3331 байтПопробуйте онлайн!
объяснение
источник
Пакет Windows,
211 180163 байтаГольф в общей сложности 48 байтов благодаря @Neil!
источник
@
в каждой строке и послеdo
немного короче@echo off
. 2.@call set w=%%w%%_
избегаетsetlocal enabledelayedexpansion
. 3. Используйте@for /l %%p in (2,1,%2)
. 4. ИМХО нужно добавить@set w=
так, чтобы код работал более одного раза.@set w=
, код не будет работать более одного раза?@for /l %%p in (1,1,%1)do
кажется, пропал без вести. 2. Кажется, ваш торт неправильной высоты, по крайней мере, он не соответствует тестовому примеру, когда я его пробую. 3. Если вы запускаете скрипт дважды в одной и той же командной сессии, торт становится все шире и шире.@
после&
. 2 Если вы измените второй цикл(2,1,%3)
на третий и на третий цикл,(1,1,%2)
то, я думаю, вы можете удалитьecho +%w%+
строку. 3. Если я посчитал правильно, то я думаю, что вы должны заполнитьw
пробелами вместо_
s, так как это приведет к меньшему количеству замен. (Я бы использовал, так@call set w= %%w%%
как в противном случае пространство было бы трудно определить!)Haskell , 87 байт
источник
(w#t)d= ...
сохраняет байт.SOGL V0.12 , 25 байтов
Попробуй здесь!
Ожидается ввод в виде ширины, глубины, а затем высоты.
источник
Питон 2,
12412212010592 байта-15 байт с использованием STDIN вместо аргументов программы
-13 байт при переходе на Python 2 (для
input()
целых чисел иprint
оператора)-12 байт от Кайрда
Попробуйте онлайн!
Python 3,
124122120105 байтовПопробуйте онлайн!
Если полная программа не требуется:
Python 3,
8784 байтаПопробуйте онлайн!
источник
Javascript (ES6),
161157 байтисточник
Python 2 , 93 байта
Попробуйте онлайн!
источник
Perl 5 , 85 + 1 (-a) = 86 байт
Попробуйте онлайн!
источник
JavaScript / ES6, 90 байт
Я только что написал грубое решение, и оказалось, что он побил существующий ответ JS с колоссальными 56 байтами. Затем я проиграл 11 байтов.
Вот демо.
источник
Холст , 23 байта
Попробуй это здесь!
источник