Ver Mensaje Individual
  #21 (permalink)  
Antiguo 12/06/2010, 14:39
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Fibo(1000): códigos y comentarios.

Comparando

bueno gente, volviendo al tema ya que no lo hice antes por vagancia. me he fijado que -o asi lo aparenta- cada uno de los que participamos enfocamos la solucion mas o menos de la misma forma, y estoy casi seguro que mas de uno de los que intentaron participar pensaron la solucion de la misma forma. claro, mi codigo no se parece mucho a los expuestos por caricatos y nahuel. pero como ya habia comentado, no era el unico codigo que habia intentado. a continuacion la primera solucion que se me habia cruzado. no parece tan obvio pero si lo analizan veran que la computacion se realiza digito por digito.
Código:
m = {0:"0", 1:"1"};
fib = function(n){
if(!m.hasOwnProperty(n)) m[n] = sum(fib(n - 1), fib(n - 2));
return m[n];
}

sum = function(a, b){
function n(d){
return isNaN(d)? 0: Number(d);
}
a = a.replace(/^0*/, "").split('').reverse();
b = b.replace(/^0*/, "").split('').reverse();
var length = Math.max(a.length, b.length);
for(var i = 0, tenth = 0, result = ""; i < length; i++){
var sum = (n(a[i]) + n(b[i]) + Number(tenth)).toString().match(/(\d*)(\d)/);
result = sum[2] + result;
tenth = sum[1];
}
return tenth + result;
}

Comentario

del codigo de nahuel2k digo casi lo mismo que caricatos. lo que no me agrada es el uso excesivo de eval. mi desagrado no es tanto porque eval sea evil, sino porque eval es lento en procesar aparte de que casi siempre existe una forma alternativa para realizar lo mismo sin necesidad de eval.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.