Diferència entre revisions de la pàgina «Solució Triangle bonic»
De wikiserver
(Hi ha una revisió intermèdia del mateix usuari que no es mostren) | |||
Línia 1: | Línia 1: | ||
− | < | + | <source lang="javascript"> |
var c = '&nbsp;'; | var c = '&nbsp;'; | ||
result=""; | result=""; | ||
Línia 25: | Línia 25: | ||
} | } | ||
document.write(result); | document.write(result); | ||
− | </ | + | </source> |
+ | |||
+ | Una altre solució sense bucles: | ||
+ | <source lang="javascript"> | ||
+ | var alfa = ["","1","2","3","4","5","6","7","8","9","0"]; | ||
+ | console.log(alfa.reduce(function(data, item, index){ | ||
+ | |||
+ | var b = alfa.reduce(function(linea, item2, index2){ | ||
+ | //espais en blanc | ||
+ | if (index2 > index) | ||
+ | linea["blancs"] = linea["blancs"] + " "; | ||
+ | //cadena ascendent | ||
+ | if((index > (index2 - index)) & index <= index2 ) | ||
+ | linea["asc"] = linea["asc"] + item2; | ||
+ | //cadena descenc¡dent | ||
+ | if((index > (index2 - index)+1) & index <= index2 ) | ||
+ | linea["desc"] = item2 + linea["desc"]; | ||
+ | |||
+ | //part del mig | ||
+ | var n = alfa.length / 2; | ||
+ | if (index > n) | ||
+ | { | ||
+ | //cadena del mig ascendent | ||
+ | if(index2 <= index - (alfa.length - index)){ | ||
+ | linea["medasc"] = linea["medasc"] + item2; | ||
+ | } | ||
+ | //cadena del mig descendent | ||
+ | if(index2 < index - (alfa.length - index)){ | ||
+ | linea["meddesc"] = item2 + linea["meddesc"]; | ||
+ | } | ||
+ | } | ||
+ | return linea; | ||
+ | },{blancs: "", asc:"", desc:"", medasc:"", meddesc:""}); | ||
+ | |||
+ | data.push(b["blancs"] + b["asc"] + b["medasc"] + b["meddesc"] + b["desc"]+"\n"); | ||
+ | return data; | ||
+ | },[])); | ||
+ | </source> |
Revisió de 20:06, 21 set 2016
var c = '&nbsp;';
result="";
for (i=1; i<=10; i++){
// escriure el caracters buits
for(j=1; j<=10-i; j++){
result = result + c;
}
// escriure la seqüència creixent
var n = i;
for(j=1; j<=i;j++){
if(n == 10) n = 0;
result = result + n;
n++;
}
// escriure la seqüència decreixent
n = n-2;
for (j=1; j<=i-1; j++){
if(n == -1) n =9;
result = result + n;
n--;
}
result = result + "<br>";
}
document.write(result);
Una altre solució sense bucles:
var alfa = ["","1","2","3","4","5","6","7","8","9","0"];
console.log(alfa.reduce(function(data, item, index){
var b = alfa.reduce(function(linea, item2, index2){
//espais en blanc
if (index2 > index)
linea["blancs"] = linea["blancs"] + " ";
//cadena ascendent
if((index > (index2 - index)) & index <= index2 )
linea["asc"] = linea["asc"] + item2;
//cadena descenc¡dent
if((index > (index2 - index)+1) & index <= index2 )
linea["desc"] = item2 + linea["desc"];
//part del mig
var n = alfa.length / 2;
if (index > n)
{
//cadena del mig ascendent
if(index2 <= index - (alfa.length - index)){
linea["medasc"] = linea["medasc"] + item2;
}
//cadena del mig descendent
if(index2 < index - (alfa.length - index)){
linea["meddesc"] = item2 + linea["meddesc"];
}
}
return linea;
},{blancs: "", asc:"", desc:"", medasc:"", meddesc:""});
data.push(b["blancs"] + b["asc"] + b["medasc"] + b["meddesc"] + b["desc"]+"\n");
return data;
},[]));