Minha esposa é muito, digamos, especial quando se trata de colocar enfeites na nossa árvore de Natal. Vamos dar a ela algum código para ajudá-la neste momento difícil.
Entrada
Dada uma entrada, 2 < n < 10
a altura da árvore e 0 < k < n
o número distinto de ornamentos.
Tarefa
Decore a árvore começando com 1
e aumente a k
medida que envolvemos os enfeites em volta da árvore. Se chegarmos k
e tivermos mais galhos para decorar, comece novamente em 1
.
Não há problema se não houver o mesmo número de cada ornamento na árvore, desde que o padrão seja satisfeito.
Os ornamentos devem aparecer acima de cada ramo, ^
exceto na linha superior.
A árvore é estruturada iniciando com um ramo e, em seguida, o próximo nível tem + 1 ramos com um espaço entre cada um, escalonado a partir do topo, como:
^
^ ^
Para uma terceira linha, você adicionaria mais um ramo e os escalonaria novamente, de modo que nenhum ramo esteja na mesma coluna (se você pensar nisso como uma grade).
^
^ ^
^ ^ ^
Saída
Saída sua árvore decorada.
Exemplos
1
n = 3, k = 2
^ //Height is 3
^ ^
^ ^ ^
Agora decoramos cada ramificação começando com 1 e incrementamos para 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
^ ^ ^ ^ ^
Isso é código-golfe, então o código mais curto vence! Divirta-se e boa sorte!
Respostas:
C #
226221 bytesGuardado 5 bytes graças a @Mukul Kumar e @aloisdg
Golfe:
Ungolfed:
Teste:
Edit: Eu tinha um elenco de peça
int
paraConsoleColor
... É a temporada :)MerryChristmas.gif
fonte
i=1
na declaração int e removê-lo dofor
circuito ...C#
resposta recebendo amor.05AB1E ,
292724 bytesEconomizou três bytes graças a Adnan!
Experimente online!
fonte
NN>*;
porNLO
.N*(N+1)/2
intencionalmente para obter a soma de números inteiros consecutivos a partir de 1, mas esqueci completamente que 05AB1E tinha built-ins para isso. Obrigado!ï
parte agora: p?JavaScript (ES6), 97 bytes
Parece que sua esposa é realmente maníaca, portanto isso não inclui nenhuma nova linha inicial ou final, nem espaço inicial ou final. :-)
Demo
Mostrar snippet de código
fonte
C ++ 214 - 13 - 3 - 1 -1 - 10 = 186 bytes
golfed
Obrigado @ cyoce por economizar 1 byte.
Obrigado @ conor por reduzi -lo para 186!
Ungolfed + copiar e compilar
fonte
#define s(a)
?#define s std::cout<<
e fazendo os ajustes correspondentes.Python 2, 133 bytes
fonte
Clojure, 223 bytes
Minha primeira partida no golfe com Clojure:
Quando chamado como
(println (str "\n" (d 6 5)))
uma nova linha, torna-o mais agradável no REPL:Sem golfe:
Eu tive alguns problemas com sequências preguiçosas e listas aninhadas, mas consegui salvar alguns caracteres não repetindo
repeat
;) e usando\^
caracteres em vez de"^"
cadeias. Eu também poderia deixar de fora surpreendentemente muitos espaços.fonte
Ruby 107 bytes
Chamado assim
Saída:
fonte
C, 170 bytes
Ligue para:
Como bônus, aqui está uma versão binária de 4 bits:
fonte