Dia 7: Decorar el árbol de Navidad
¡Es hora de decorar el árbol de Navidad 🎄! Escribe una función que reciba:
height → la altura del árbol (número de filas). ornament → el carácter del adorno (por ejemplo, “o” o ”@”). frequency → cada cuántas posiciones de asterisco aparece el adorno. El árbol se dibuja con asteriscos *, pero cada frequency posiciones, el asterisco se reemplaza por el adorno.
El conteo de posiciones empieza en 1, desde la copa hasta la base, de izquierda a derecha. Si frequency es 2, los adornos aparecen en las posiciones 2, 4, 6, etc.
El árbol debe estar centrado y tener un tronco # de una línea al final.
🧩 Ejemplos drawTree(5, ‘o’, 2) // * // oo // oo // oooo // oooo // #
drawTree(3, ’@’, 3) // * // @ // *@**@ // #
drawTree(4, ’+’, 1) // + // +++ // +++++ // +++++++ // #
Solution
function drawTree(height: number, ornament: string, frequency: number): string {
let result = '';
let position = 1;
for (let row = 1; row <= height; row++) {
const spaces = ' '.repeat(height - row);
const elements = 2 * row - 1;
let line = '';
for (let i = 0; i < elements; i++) {
if (position % frequency === 0) {
line += ornament;
} else {
line += '*';
}
position++;
}
result += spaces + line + '\n';
}
result += ' '.repeat(height - 1) + '#';
return result;
}
drawTree(5, 'o', 2)