Pascal's Triangle
by martinschaer
HTML
<pre></pre>
JavaScript
var w = 4;
var espacios = function (n) {
var resultado = "";
for (var i = 0; i < n; i++) {
resultado += " ";
}
return resultado;
};
var numero = function (x) {
var resultado = "";
var digitos = x.toString().length;
if (digitos <= w) {
resultado += espacios(w - digitos);
resultado += x;
} else {
resultado = x.toString().substr(0, w - 1) + "…";
}
return resultado;
};
var generarTriangulo = function (niveles) {
var w_total = niveles * w;
var nivel = 1;
var columnas_x_nivel = 1;
var matriz = [[1]];
var resultado = espacios(niveles * w/2) + numero(1) + "\n";
var columna;
var x;
for (; nivel < niveles; nivel++) {
columna = 1;
columnas_x_nivel = nivel + 1;
matriz.push([1]);
resultado += espacios((niveles - nivel) * w/2);
resultado += numero(1);
for (; columna < columnas_x_nivel; columna++) {
if (columna < columnas_x_nivel - 1) {
x = matriz[nivel-1][columna-1] + matriz[nivel-1][columna];
} else {
x = 1;
}
matriz[nivel].push(x);
resultado += numero(x);
}
resultado += "\n";
}
return resultado;
};
document.getElementsByTagName('pre')[0].innerHTML = generarTriangulo(40);