Código Javascript
:
Ver originalfunction fib(x){
var a = "0";
var b = "1";
var c = "0";
for (k=x;k>2;k--){
c=a;
a=b;
b=suma(b,c);
}
return suma(a,b);
}
function suma(a,b){
var sumado = "";
var num=0;
if(b.length>a.length) {
var c=a;
var a=b;
var b=c;
}
c="0"
for(i=0; i<b.length ; i++){
var num =eval(a.substring(a.length-1-i,a.length-i))+eval(b.substring(b.length-1-i,b.length-i))+eval(c);
if(num>9){
c="1";
num=num-10;
}else{
c="0";
}
sumado=num.toString().concat(sumado);
}
i=b.length;
while(i<a.length){
if(c == "0"){
num=eval(a.substring(a.length-1-i,a.length-i));
}else{
num=eval(a.substring(a.length-1-i,a.length-i))+1;
}
if(num>9){
num=num-10;
}else{
c="0";
}
sumado=num.toString().concat(sumado);
i++;
}
if(c =="1"){
sumado=c.concat(sumado);
}
return sumado;
}
Bueno el mío a lo mejor es un poco menos efectivo que el vuestro.. pero bueno el resultado devuelto es válido. Saludoss