0votos

Árbol de Navidad en JavaScript

por josejuan hace 6 años

Una forma curiosa ¿no?

Escribe una función que dado un entero N, devuelve un árbol de asteriscos de N líneas.

1
2
3
4
5
6
7
function arbol(n) { 
    var s = ";*" 
    var q = /^.*;([^;]+)$/ 
    while(--n) 
        s = s.replace(/;/g, "; ") + ";**" + s.replace(q, "$1").replace(/./g, "*") 
    return s.replace(/;/g, "\n") 
4 comentarios
0votos

Escrito por Omar hace 6 años

Interesante tu solución y es que no la pude entender a la primera... ¿Existe una razón porqué la hayas hecho así, es más eficiente, más rápido o sólo porqué querías buscarte otra forma de resolverlo?
0votos

Escrito por josejuan hace 6 años

No niguna, símplemente quería hacerla por inducción.

A(n) = f(A(n-1))
0votos

Escrito por Toby hace 6 años

no entiendo esta parte s.replace(q, "$1")
0votos

Escrito por josejuan hace 6 años

aprovecho q para encontrar la última línea anterior (con el $1 obtienes sólo la última línea anterior) y añadir los asteriscos que faltan.

¡Ahora que me fijo, el último ".replace(/./g, "*")" no hace falta!

XD XD

(cachis que no se pueden editar)

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.