Моя жена очень, скажем так, особенная, когда дело доходит до украшения нашей елки. Давайте напишем ей код, который поможет ей в это трудное время.
вход
Учитывая вход 2 < n < 10
высота дерева и 0 < k < n
различное количество украшений.
задача
Украсьте дерево, начиная с 1
и увеличивая, k
пока мы обертываем орнаменты вокруг дерева. Если мы дойдем k
и у нас будет больше украшений, тогда начнем с 1
.
Ничего страшного, если на дереве не одинаковое количество каждого орнамента, если рисунок удовлетворен.
Орнаменты должны появляться над каждой ветвью, ^
кроме верхнего ряда.
Дерево структурируется, начиная с одной ветви, затем на следующем уровне + 1 ветка с пробелом между ними, смещенная сверху, как:
^
^ ^
Для третьей строки вы бы добавили еще одну ветвь и разложили их снова так, чтобы ни одна ветвь не находилась в том же столбце (если вы думаете о ней как о сетке).
^
^ ^
^ ^ ^
Выход
Выведите свое украшенное дерево.
Примеры
1.
n = 3, k = 2
^ //Height is 3
^ ^
^ ^ ^
Теперь мы украшаем каждую ветку, начиная с 1 и увеличивая до k:
^
1 2
^ ^
1 2 1
^ ^ ^
2.
n = 6, k = 5
^ //Non-Decorated
^ ^
^ ^ ^
^ ^ ^ ^
^ ^ ^ ^ ^
^ ^ ^ ^ ^ ^
^ //Decorated
1 2
^ ^
3 4 5
^ ^ ^
1 2 3 4
^ ^ ^ ^
5 1 2 3 4
^ ^ ^ ^ ^
5 1 2 3 4 5
^ ^ ^ ^ ^ ^
3.
n = 5, k = 1
^
^ ^
^ ^ ^
^ ^ ^ ^
^ ^ ^ ^ ^
^
1 1
^ ^
1 1 1
^ ^ ^
1 1 1 1
^ ^ ^ ^
1 1 1 1 1
^ ^ ^ ^ ^
Это код-гольф, поэтому выигрывает самый короткий код! Удачи и удачи!
Ответы:
C #
226221 байтСохранено 5 байт благодаря @Mukul Kumar и @aloisdg
Golfed:
Ungolfed:
Тестирование:
Edit: я была игра кастинг ,
int
чтобыConsoleColor
... Это сезон :)MerryChristmas.gif
источник
i=1
в объявлении int и удалить его изfor
цикла ...C#
ответ, получая любовь.05AB1E ,
292724 байтаСэкономили три байта благодаря Аднану!
Попробуйте онлайн!
источник
NN>*;
наNLO
.N*(N+1)/2
намеренно, чтобы получить сумму последовательных целых чисел, начиная с 1, но я полностью забыл, что в 05AB1E есть встроенные модули для этого. Благодарность!ï
часть сейчас: р?JavaScript (ES6), 97 байт
Кажется, что ваша жена действительно маниакальна, так что это не включает ни начальную или конечную новую строку, ни начальную или конечную пробел. :-)
демонстрация
Показать фрагмент кода
источник
C ++ 214 - 13 - 3 - 1 -1 - 10 = 186 байт
golfed
Спасибо @ cyoce за сохранение 1 байта.
Спасибо @ Конора для измельчения ее до 186!
Ungolfed + копировать и компилировать
источник
#define s(a)
?#define s std::cout<<
и внесения соответствующих корректировок.Python 2, 133 байта
источник
Clojure, 223 байта
Мой первый опыт игры в гольф с Clojure:
При вызове как
(println (str "\n" (d 6 5)))
новая строка делает его лучше на REPL:Un-golfed:
У меня были некоторые проблемы с отложенными последовательностями и вложенными списками, но я смог сохранить некоторые символы, не повторяя
repeat
;) и используя\^
символы вместо"^"
строк. Я также мог бы оставить на удивление много мест.источник
Ruby 107 байтов
Называется так
Выход:
источник
C 170 байт
Звоните с:
В качестве бонуса, вот 4-битная бинарная версия:
источник